全书目录

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

第三章:Type —— 总台能识别的业务卡片

1 分钟 414 字 第 307 / 962 个阅读单元

Schema 里最重要的基本单位就是 Type
Type 就像总台能识别的“业务卡片类型”。

常见 Type 有这几类:

  1. type 表示对象类型,比如 ResidentTicketDevice

  2. scalar 表示叶子值,比如 StringIntBooleanID

  3. enum 表示有限选项,比如工单状态 OPEN / IN_PROGRESS / CLOSED

  4. input 表示提交变更时的输入结构

  5. 列表和非空修饰

    • [Ticket]:可空列表,里面元素也可空
    • [Ticket!]:列表可空,但元素不可空
    • [Ticket!]!:列表不可空,元素也不可空
    • String!:这个字段承诺不返回 null

关系图:

text
Resident
  ├── id: ID!
  ├── name: String!
  ├── zone: String!
  └── tickets: [Ticket!]!

Ticket
  ├── id: ID!
  ├── title: String!
  ├── status: TicketStatus!
  ├── resident: Resident!
  └── device: Device

Device
  ├── id: ID!
  ├── name: String!
  └── location: String!

这里最重要的认知是:

GraphQL 不是围绕 URL 建模,而是围绕“业务对象及其关系”建模。

也就是说,总台不是按“窗口地址”思考,而是按“住户、工单、设备之间如何关联”思考。