用途:在已有数据模型与业务需求基础上,构建生产级 GraphQL API。支持 SDL 优先或代码优先的 schema 设计,覆盖 Apollo Server、Yoga、Mercurius 与 Python 的 Strawberry、Ariadne。
主要能力:设计包含 Query、Mutation、Subscription 根类型及输入类型、分页连接类型的 schema;用 DataLoader 批量与去重数据库查询以预防 N+1;通过自定义标量(DateTime、Email、URL)和 @constraint 指令做输入校验;用 @auth 指令或解析器中间件实现字段级授权;配置查询复杂度与深度限制(最大深度 7、复杂度 1000);基于 graphql-ws 协议经 WebSocket 实现实时订阅,并用 Redis pub/sub 做多实例分发;用 graphql-codegen 从 schema 生成 TypeScript 类型。
使用方式:先读取现有数据模型与数据库 schema 确定实体关系,再设计 schema、实现解析器与 DataLoader、添加校验与授权、配置复杂度限制与订阅,最后生成类型并写集成测试(executeOperation 测查询/变更,WebSocket 客户端测订阅)。完整实现指南见 ${CLAUDE_SKILL_DIR}/references/implementation.md。
产出:schema、resolvers、dataloaders、directives、scalars、subscriptions 目录及 generated/types.ts。
前置条件:Node.js 18+ 或 Python 3.10+;带 ORM 的数据库;生产环境用 Redis;GraphQL 客户端(GraphiQL、Apollo Studio 或 Insomnia);推荐 graphql-codegen。
限制与错误处理:资料给出 N+1、复杂度超限、订阅断连、部分解析失败、schema 拼接冲突等场景的处理方向,更多错误模式见 ${CLAUDE_SKILL_DIR}/references/errors.md;示例见 ${CLAUDE_SKILL_DIR}/references/examples.md。