测试工具 GraphiQL 。 测试地址:http://snowtooth.moonhighway.com
1. 联合类型
返回的 列表
不止有一种类型。(on 是指定选择条件, ... 展开)
query schedule {
agenda {
...on Workout {
name
reps
}
...on StudyGroup {
name
subject
students
}
}
}
返回结果如下
{
"data": {
"agenda" : [
{
"name": "Comp Sci",
"subject": "Computer Secience",
"student": 12
},
{
"name": "Cardio",
"reps": 100
},
......
]
}
}
2. 接口
单个字段想要返回多个对象类型的时候使用
其中 start 和 end 为 接口中的属性
query schedule {
agenda {
name
start
end
}
}
3. 变更 mutation
新增 修改 删除 都是变更。
新建一条数据,一首歌,传入了标题 是否为封面 以及演员的名字 三个属性,然后要求新建数据成功之后给我吗返回 id 以及其中的两个属性。(可以随意定义返回的属性)
mutation createSong {
addSong (title: "谢谢你", numberOne: true,performerName:"TLC") {
id
title
numberOne
}
}
返回数据如下
{
"data": {
"addSong": {
"id": "7dh4kj8ui09sh487k9o1je7jl",
"title": "谢谢你",
"numberOne": true
}
}
}
修改一条数据
mutation changTitle {
setSongTitle(id: "7dh4kj8ui09sh487k9o1je7jl", title: "不谢你了") {
id
title
}
}
4. 使用查询变量
就是用把死数据换成变量
用哪 $+变量名
来表示变量,也可以把performerName 命名为by。不过最好是一一对应。
mutation createSong($title: String!, $numberOne: Booblean, $by: String!) {
addSong (title: $title, numberOne: $numberOne, performerName: $by") {
id
title
numberOne
}
}
5. 订阅 subscription
客户端监听从服务器实时返回的数据。发送一个修改数据的GraphQL,订阅就能收到返回的数据。
subscription {
liftStatusChange {
name
capacity
status
}
}
6. 自检
相当于查看接口文档。
name 是属性名
description 是属性的描述。测试结果可以自行查看 文章一的测试链接。
query liftDetails {
__type(name:"Lift") {
name
fields {
name
description
type {
name
description
}
}
}
}