首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS API网关多个2XX响应

AWS API网关多个2XX响应
EN

Stack Overflow用户
提问于 2017-10-31 18:57:29
回答 2查看 1K关注 0票数 2

我们有一个通过API网关构建的API端点,它可以有两个可能的成功响应:如果返回所有请求的数据,则为200 OK;如果将数据分页,则需要206部分内容,并且需要额外的请求来获取所有数据。

我在https://aws.amazon.com/blogs/compute/amazon-api-gateway-mapping-improvements/上发现,亚马逊现在允许定义多个2XX响应,但我不能将这两个响应都归因于Integration配置中的成功。现在,默认设置为200,但似乎必须为206映射指定Lambda Error Regex。

这基本上意味着,我必须用错误消息失败206,然后使用regex来确定是否发送了该消息,然后基本上将其视为成功吗?或者,如何正确地返回200或206作为一个成功的回应?

AWS将访问我们服务器的端点将正确返回200或206,但当AWS响应客户机时,它目前只发送200。

EN

回答 2

Stack Overflow用户

发布于 2017-11-03 12:46:01

这基本上意味着,我必须用错误消息失败206,然后使用regex来确定是否发送了该消息,然后基本上将其视为成功吗?

是的,这是正确的。古怪的,错误的,但它有效。

票数 0
EN

Stack Overflow用户

发布于 2020-07-29 15:14:01

API网关不提供发送多个成功的2xx响应。以下是一些选择

  1. 使lambda或后端应用程序失败,并返回一些json响应。在集成响应中创建正则表达式,并将响应映射到特定的错误代码。正则表达式的匹配是在errorMessage字段上进行的,只有从lambda抛出错误时才能得到正则表达式。
  2. 使用应答压倒一切。您可以创建一个与所有或部分响应匹配的默认映射,然后在映射模板中,您可以将状态代码覆盖到您想要返回的任何内容。

例:-

Lambda返回

代码语言:javascript
复制
def handler(event, context):
   x = {
     "message": "partial"
   }
   return x

API网关集成响应

Lambda错误正则表达式:-

方法响应状态: 200

默认映射:是

制图模板:

代码语言:javascript
复制
#set($inputRoot = $input.path('$'))
$input.json("$")
#if($inputRoot.toString().contains("partial"))
    #set($context.responseOverride.status = 206)
#end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47042754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档