如何在API Gateway执行后将请求体返回给客户端
解决API Gateway返回原始请求体的问题
针对你在SQS集成场景下,想把客户端发送给API的原始请求体返回的需求,给你可行的映射模板方案及关键注意事项:
正确的映射模板写法
情况1:请求体是JSON格式
直接用$input.json('$')获取完整原始请求体,模板如下:
{ "requestBody": $input.json('$') }
这个写法会把API Gateway接收到的整个JSON请求体原样嵌入响应的requestBody字段,避免语法错误导致返回空值。
情况2:请求体是非JSON格式(纯文本、表单等)
用引号包裹$input.path('$'),将原始内容作为字符串返回:
{ "requestBody": "$input.path('$')" }
关键配置注意点
- 确保API Gateway方法请求中,已启用对应请求的Content-Type(比如
application/json),且没有开启会过滤请求体的验证规则。 - 这个映射模板要配置在方法响应的模板里,而非集成请求的模板——因为你要返回的是API收到的原始请求,和发给SQS的集成内容无关。
内容的提问来源于stack exchange,提问作者Lemour
相关产品推荐
相关产品推荐

