我们有一个通过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。
发布于 2017-11-03 12:46:01
这基本上意味着,我必须用错误消息失败206,然后使用regex来确定是否发送了该消息,然后基本上将其视为成功吗?
是的,这是正确的。古怪的,错误的,但它有效。
发布于 2020-07-29 15:14:01
API网关不提供发送多个成功的2xx响应。以下是一些选择
例:-
Lambda返回
def handler(event, context):
x = {
"message": "partial"
}
return xAPI网关集成响应
Lambda错误正则表达式:-
方法响应状态: 200
默认映射:是
制图模板:
#set($inputRoot = $input.path('$'))
$input.json("$")
#if($inputRoot.toString().contains("partial"))
#set($context.responseOverride.status = 206)
#endhttps://stackoverflow.com/questions/47042754
复制相似问题