Obeta

3. GraphQL使用指南

此部分介绍GraphQL的Mutaions操作,可以理解为post数据到服务器上的类似操作.

GraphQL 使用指南(Mutaions)

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

准备工作

切换 git 分支到mutation

git checkout mutation

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

开始

我们看看文档是怎么样的.

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

mutation create {
	createAddress(
		Id: 100,
		Code: "234234",
		Name: "我的城市",
		FirstStr: "A"
	){
		Id,
		Code,
		Name,
		FirstStr
	}
}

服务器返回的数据:

{
	"data": {
		"createAddress": {
			"Id": 100,
			"Code": "234234",
			"Name": "我的城市",
			"FirstStr": "A"
		}
	}
}

如图:

格式

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

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

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

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

合并 Mutation 操作

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

mutation {
	my:createAddress(
		Id:100,
		Code:"234234",
		Name:"我的城市",
		FirstStr:"A"
	) {
		Id,
		Code,
		Name,
	},
	you:createAddress(
		Id:90,
		Code:"234234",
		Name:"你的城市",
		FirstStr:"N"
	) {
		Id,
		Code,
		Name,
	},
}

服务器返回:

{
	"data": {
		"my": {
			"Id": 100,
			"Code": "234234",
			"Name": "我的城市"
		},
		"you": {
			"Id": 90,
			"Code": "234234",
			"Name": "你的城市"
		}
	}
}

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

总结

Mutation 也非常的简单,后面我们去了解更高级的操作.

个人随笔记录,内容不保证完全正确,若需要转载,请注明作者和出处.