測試工具 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
}
}
}
}