AWS API Gateway:是否可以在响应正文中包含特定的请求正文验证错误?

时间:2017-11-29 23:14:49

标签: amazon-web-services aws-api-gateway

我有一个API网关POST端点,它接收一个JSON请求体。我打开了body请求验证程序并添加了请求正文模型。但是,我得到的错误响应只是一些通用消息:"message": "Invalid request body",如网关响应中所定义。我想知道是否可以在响应中包含特定的验证错误?在日志中,它具体说明

Request body does not match model schema for content type application/json: 
[object has missing required properties (["property1","property2",...])] 

在实际响应中是否可以有类似的东西?谢谢。

2 个答案:

答案 0 :(得分:2)

仅当请求有效内容格式有效但参数格式无效时,AWS API Gateway才会包含更多详细信息:

{
  "message": "Missing required request parameters: [p1]"
}

如果请求有效负载无效,您将始终收到相同的消息:

{
  "message": "Invalid request body"
}

请参阅以下页面的底部:

http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-validation-test.html

获取更多详细信息的唯一方法是通过日志。

顺便说一下,为什么要通过API发送更多详细信息,仅用于开发和调试吗?如果是,使用日志是可行的方法。您可能有一些日志处理和存储解决方案,以使您的调试更容易(例如Splunk,Data Dog,Sumo Logic等)

否则,通常,在API错误消息中返回太多技术细节是值得避免的。

答案 1 :(得分:2)

在网关响应中,错误类型为BAD_REQUEST_BODY,错误状态为400

Application / json 设置为 {“ message”:$ context.error.validationErrorString}

参考 https://stackoverflow.com/a/48014686