SuperAPI AI 工具集

graphql-schema-design

编程与开发

查看项目

更新于 10-16 08:07

技能介绍

用途:帮助架构可扩展、易维护的 GraphQL API,重点在 schema 层面的设计模式与最佳实践。

主要能力与模式: 命名规范:类型用 PascalCase,字段用 camelCase,布尔字段用 is/has/can 前缀;查询用名词单复数,变更用「动词+名词」,输入为 [Action][Type]Input,返回为 [Action][Type]Payload。 分页:采用 Relay 风格的 Connection 模式,包含 edges、node、cursor、pageInfo(hasNextPage、hasPreviousPage、startCursor、endCursor)与 totalCount;列表支持 first、after、last、before、filter 参数。 错误处理:推荐 Payload 模式(返回数据加 errors 列表,配合错误码枚举),也可用 Union 模式返回成功或各类错误类型,实现类型安全。 对象识别:定义 Node 接口与 node(id)、nodes(ids) 查询,便于按 ID 重新获取任意对象。 Schema 组织:可按领域拆分文件,如 types/user.graphql、types/product.graphql,在根 schema 汇总。 设计取舍:小规模固定列表用 [Item!]!,可变或较大列表用 Connection;可能产生用户错误的变更用 Payload 模式;类型完全不同用 Union,共享字段用 Interface;可空性按是否必填与是否可能计算失败决定。

使用方式:以 Skill("graphql-schema-design") 调用。可用 npx graphql-inspector validate schema.graphql 校验,npx graphql-inspector diff old.graphql new.graphql 检查破坏性变更,npx graphql-inspector coverage schema.graphql queries/*.graphql 做覆盖分析。

适用场景与限制:适用于 GraphQL API 的 schema 设计与评审;涉及已废弃字段、N+1 查询等问题时资料给出对应建议(如先用 @deprecated、使用 DataLoader)。具体收费、平台、效果等资料暂未提供。