【发布时间】:2017-10-31 18:57:29
【问题描述】:
我们有一个通过 API Gateway 构建的 API 端点,它可以有两个可能的成功响应:如果返回所有请求的数据,则返回 200 OK,如果数据已分页并且需要额外请求来获取,则返回 206 Partial Content所有数据。
我在https://aws.amazon.com/blogs/compute/amazon-api-gateway-mapping-improvements/ 发现亚马逊现在允许定义多个 2XX 响应,但我不能将这两个响应都归因于集成响应配置中的成功。现在我们将 200 设置为默认值,但似乎我们必须为 206 映射指定 Lambda 错误正则表达式。
这是否基本上意味着我必须使用错误消息使 206 失败,然后使用正则表达式来确定是否正在发送该消息,然后基本上只是将其视为成功?或者如何正确返回 200 或 206 作为成功响应?
AWS 将在我们的服务器上命中的端点将正确返回 200 或 206,但当 AWS 响应客户端时,它目前只发送 200。
【问题讨论】:
-
这似乎是对
206 Partial Content的滥用。 HTTP 状态 206 用于响应Range请求。 tools.ietf.org/html/rfc7233#page-10 -
除了 206,我发现避免使用旧的 API 网关集成并只使用 Lambda-Proxy 更容易。这样您就可以避免所有这些糟糕的映射内容,并且可以使用常规 HTTP 库来管理请求-响应生命周期。无耻塞:github.com/dougmoscrop/serverless-http
标签: amazon-web-services aws-lambda aws-api-gateway