全书目录

第十六篇:GraphQL 完全指南 —— 智能问询总台宇宙

第八章:Mutation —— 这不是咨询了,这是提交变更工单

1 分钟 224 字 第 312 / 962 个阅读单元

GraphQL 不只有查询,还能写入。
写入操作叫 Mutation

例如,向总台提交一张新工单:

graphql
mutation CreateTicket($input: CreateTicketInput!) {
  createTicket(input: $input) {
    id
    title
    status
    resident {
      id
      name
    }
    device {
      id
      name
    }
  }
}

变量:

json
{
  "input": {
    "residentId": "r-1001",
    "deviceId": "d-9",
    "title": "空调异响",
    "description": "夜间启动时有连续异响"
  }
}

几个关键点你必须记住:

  1. Mutation 也是走 Schema 的
  2. Mutation 也要自己声明返回哪些字段
  3. 写入后通常直接返回新状态,方便前端立即更新界面

这和 REST 的差异很明显。

REST 常见心智:

text
POST /tickets
然后再 GET /tickets/xxx

GraphQL 常见心智:

text
提交 createTicket
同时直接要回新工单的 id、status、resident、device

这就是智能总台的做法:

  • 你办完事
  • 总台顺手把你下一步要看的回执也一起打印出来