GraphQL使用指南(Mutaions)

Mutations(突变) 不知道怎么翻译比较好,暂时直接英文吧(可以理解为增删改).

准备工作

切换git分支到mutation

  1. git checkout mutation

提示:如果你没有克隆我的库,你需要去克隆一个然后执行上面的命令,更多的信息请看上一篇查询教程.

开始

我们看看文档是怎么样的.
GraphQL使用指南(Mutaions) - 图1

理解了查询,那么Mutaions也是比较好理解的.也就是通过GraphQL来修改服务器的数据.来看一个简单的例子:

  1. mutation create{
  2. createAddress(
  3. Id:100,
  4. Code:"234234",
  5. Name:"我的城市",
  6. FirstStr:"A"){
  7. Id,
  8. Code,
  9. Name,
  10. FirstStr
  11. }
  12. }

服务器返回的数据:

  1. {
  2. "data": {
  3. "createAddress": {
  4. "Id": 100,
  5. "Code": "234234",
  6. "Name": "我的城市",
  7. "FirstStr": "A"
  8. }
  9. }
  10. }

如图:

GraphQL使用指南(Mutaions) - 图2

格式

我们来分析一下这个Mutation操作吧,其实很简单:

  • create是一个名字,你可以随便定义,甚至不给这个名字都可以.
  • createAddress是服务器已经定义好的操作,这个文档有详细信息,让你知道需要发送什么数据,如图:

GraphQL使用指南(Mutaions) - 图3

注意类型后面的!感叹号,这代表这个字段必须给,否则服务器不接受这个请求.

  • createAddress后面括号是接受Id等数据,而大括号里的是需要返回的数据.

合并Mutation操作

和查询一样,Mutation也可以同时多种操作同时发送的.

  1. mutation{
  2. my:createAddress(
  3. Id:100,
  4. Code:"234234",
  5. Name:"我的城市",
  6. FirstStr:"A"){
  7. Id,
  8. Code,
  9. Name,
  10. },
  11. you:createAddress(
  12. Id:90,
  13. Code:"234234",
  14. Name:"你的城市",
  15. FirstStr:"N"){
  16. Id,
  17. Code,
  18. Name,
  19. },
  20. }

服务器返回:

  1. {
  2. "data": {
  3. "my": {
  4. "Id": 100,
  5. "Code": "234234",
  6. "Name": "我的城市"
  7. },
  8. "you": {
  9. "Id": 90,
  10. "Code": "234234",
  11. "Name": "你的城市"
  12. }
  13. }
  14. }

注意:如果我们的操作是同一个,比如都是createAddress的话就需要设置别名,在这里我强烈建议都设置别名,这意味着更安全.

总结

Mutation也非常的简单,接下来我们去了解更高级的操作.