GraphQL 不只有查询,还能写入。
写入操作叫 Mutation。
例如,向总台提交一张新工单:
mutation CreateTicket($input: CreateTicketInput!) {
createTicket(input: $input) {
id
title
status
resident {
id
name
}
device {
id
name
}
}
}变量:
{
"input": {
"residentId": "r-1001",
"deviceId": "d-9",
"title": "空调异响",
"description": "夜间启动时有连续异响"
}
}几个关键点你必须记住:
- Mutation 也是走 Schema 的
- Mutation 也要自己声明返回哪些字段
- 写入后通常直接返回新状态,方便前端立即更新界面
这和 REST 的差异很明显。
REST 常见心智:
POST /tickets
然后再 GET /tickets/xxxGraphQL 常见心智:
提交 createTicket
同时直接要回新工单的 id、status、resident、device这就是智能总台的做法:
- 你办完事
- 总台顺手把你下一步要看的回执也一起打印出来