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

tia*_*anz 5 amazon-web-services aws-api-gateway

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

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

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

Bha*_*ary 8

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

将Application/json设置为{"message":$context.error.validationErrorString}

参考 /sf/answers/3361028051/


Sep*_*iei 2

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

{
  "message": "Missing required request parameters: [p1]"
}
Run Code Online (Sandbox Code Playgroud)

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

{
  "message": "Invalid request body"
}
Run Code Online (Sandbox Code Playgroud)

参见下页底部:

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

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

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

否则,一般来说,应该避免在 API 错误消息中返回过多的技术细节。