如何在AWS AppSync中创建返回空响应的mutation?
AWS AppSync Mutation 实现空返回的方案
AWS AppSync 没有内置Void标量,但可以通过以下两种方式实现空响应的需求:
方案一:自定义Void标量(最贴合需求)
- 在GraphQL schema中新增自定义Void标量定义:
scalar Void
- 按你期望的写法定义Mutation:
type Mutation { updateUser(name: String!): Void }
- 对应resolver逻辑执行完成后直接返回
null即可,客户端最终收到的返回结果为"updateUser": null,完全符合空返回的预期。
方案二:复用内置标量(无需自定义)
如果不想新增自定义标量,也可以直接复用AppSync内置的Boolean类型实现:
- Mutation定义如下:
type Mutation { updateUser(name: String!): Boolean }
- resolver执行完成后返回
true或null都可以,调用Mutation时可以选择不接收返回字段:
mutation { updateUser(name: "张三") }
两种方案都可以实现无有效业务数据返回的效果,符合GraphQL的语法规范,也适配AppSync的运行规则。
注:GraphQL 官方规范不允许 Mutation 没有返回类型,因此无法做到完全无返回值,以上方案已经是当前生态下最贴近空响应需求的实现方式。
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

