免费 tier AWS AppSync控制台调用HTTP端点POST及mutation payload丢失问题
AppSync HTTP数据源Mutation返回字段为空解决方案
排查解决步骤
- 检查请求映射模板配置
AppSync不会自动将Mutation输入参数封装为POST请求体,需手动配置VTL模板将参数传入请求body,参考配置如下:
{ "version": "2018-05-29", "method": "POST", "resourcePath": "/你的接口路由", "params": { "headers": { "Content-Type": "application/json" }, "body": $util.toJson($ctx.args.input) } }
重点确认body字段是否正确引用$ctx.args.input,未配置该字段会导致请求体为空,仅触发接口的id生成逻辑。
- 检查响应映射模板配置
如果服务端已成功接收参数但返回值除id外均为空,需确认响应模板是否正确提取服务端返回的字段:
## 直接透传服务端返回结果(要求服务端返回字段与Schema定义完全一致) $util.toJson($ctx.result.body)
如果服务端返回字段命名与Schema定义不匹配(如服务端返回蛇形命名字段,Schema用小驼峰),需手动做字段映射:
{ "id": $ctx.result.body.id, "displayName": $ctx.result.body.display_name, "firstName": $ctx.result.body.first_name, "lastName": $ctx.result.body.last_name }
- 校验请求实际发送内容
在AppSync控制台开启全量请求日志,查看实际发送到HTTP端点的请求体内容,确认参数是否正常携带。如果请求体已包含所有字段,需排查服务端接口逻辑是否正确解析JSON请求体、是否将对应字段持久化到数据库。 - 确认Schema定义匹配
检查CreateMainInput输入类型与Main返回类型的字段名、类型是否与服务端接口要求完全一致,排除拼写错误、类型不匹配问题。
内容的提问来源于stack exchange,提问作者abhishek g
相关产品推荐
相关产品推荐

