API Gateway集成Step Functions:响应体映射格式异常求助
解决方案:修复API Gateway响应体JSON格式异常
修正后的Velocity模板
##velocity template #set($inputRoot=$input.path('$')) #set($output=$util.parseJson($inputRoot.output)) #set($context.responseOverride.status=$output.statusCode) #set($responseBody=$util.toJson($output.body)) $responseBody
问题原因与说明
之前出现格式异常是因为直接输出$output.body时,Velocity会将解析后的Java对象以非标准的键值对字符串形式输出(比如{message=Internal Server Error}),而非符合规范的JSON格式。
使用API Gateway提供的$util.toJson()工具方法,可以将解析后的body对象重新序列化为标准JSON字符串,确保响应体格式正确。
注意:如果你的Step Functions返回的body本身就是JSON字符串(而非嵌套对象),则无需使用$util.toJson(),直接输出$output.body即可。根据你提供的返回格式,body是嵌套对象,因此必须通过该方法转换。
内容的提问来源于stack exchange,提问作者Pratik
相关产品推荐
相关产品推荐

