如何让 AWS API 网关根据模型验证 JSON Body
How to get AWS API Gateway to validate JSON Body against Model
新发布的 "x-amazon-apigateway-request-validator"(我相信是在四月份)应该能够 运行 针对 POST/PUT 负载的 JSON 架构验证 API.
我现在尝试用几种不同的方式来实现它,但我无法让它工作...
我添加了验证器:
"x-amazon-apigateway-request-validators": {
"ValidateBody": {
"validateRequestParameters": false,
"validateRequestBody": true
},
"ValidateHeaders": {
"validateRequestParameters": true,
"validateRequestBody": false
}
}
对于任何方法,我都会寻找特定的 headers 所以我在 Swagger 的 "root" 中也有参数:
"x-amazon-apigateway-request-validator": "ValidateHeaders"
在 POST 中,我有一个 x-amazon-apigateway-request-validator: ValidateBody
,然后是一个带有 JSON 模式的模型,其中几个元素是 required
。
但是我可以 POST 任何东西,只要它是 JSON...没有针对 JSON 模式完成的验证...
我错过了什么?
正在运行!
部署和新代码的实际使用之间存在时间延迟,即使我似乎没有进行任何缓存。
出去吃午饭,回来找到可行的解决方案!
{
"message": "Invalid request body"
}
不过如果能够修改响应消息就好了...
新发布的 "x-amazon-apigateway-request-validator"(我相信是在四月份)应该能够 运行 针对 POST/PUT 负载的 JSON 架构验证 API.
我现在尝试用几种不同的方式来实现它,但我无法让它工作... 我添加了验证器:
"x-amazon-apigateway-request-validators": {
"ValidateBody": {
"validateRequestParameters": false,
"validateRequestBody": true
},
"ValidateHeaders": {
"validateRequestParameters": true,
"validateRequestBody": false
}
}
对于任何方法,我都会寻找特定的 headers 所以我在 Swagger 的 "root" 中也有参数:
"x-amazon-apigateway-request-validator": "ValidateHeaders"
在 POST 中,我有一个 x-amazon-apigateway-request-validator: ValidateBody
,然后是一个带有 JSON 模式的模型,其中几个元素是 required
。
但是我可以 POST 任何东西,只要它是 JSON...没有针对 JSON 模式完成的验证...
我错过了什么?
正在运行! 部署和新代码的实际使用之间存在时间延迟,即使我似乎没有进行任何缓存。
出去吃午饭,回来找到可行的解决方案!
{
"message": "Invalid request body"
}
不过如果能够修改响应消息就好了...