用途:用于设计或重构 GraphQL Schema,覆盖类型系统、SDL、字段设计、分页、指令与版本演进,目标是写出结构良好、易维护、可扩展的 GraphQL API。
主要能力:
- 类型系统:对象类型、接口、联合类型、枚举、输入类型与自定义标量(如 DateTime、EmailAddress、URL、JSON、UUID)。
- 指令:@skip、@include、@deprecated,以及自定义指令 @auth、@rateLimit、@cacheControl。
- 可空性设计:非空字段、非空列表与可空列表元素的组合取舍。
- 分页:偏移分页(limit/offset)与基于游标的 Relay Connection 模式(edges、pageInfo、cursor)。
- 变更设计:输入对象模式、Payload 返回类型、UserError 错误数组,以及联合类型错误返回。
- 联邦与缝合:@key、extend type、@external 等实体扩展。
- 版本策略:@deprecated 弃用与增量式扩展,避免破坏性变更。
适用场景:从零设计 GraphQL API、重构现有 Schema、REST 迁移到 GraphQL、微服务联邦、制定团队 Schema 规范。
限制与注意事项:资料未提供具体命令、安装方式、价格或平台信息;示例中的标量与指令需按目标运行时自行实现。设计时应避免过度取数、无分页列表、循环依赖、破坏性变更、滥用非空字段以及 N+1 问题。