用途:面向 GraphQL API 的设计与实现,当需要构建或消费 GraphQL API、涉及 schema、queries、mutations、resolvers 时使用。也可用 mcp__documentation__fetch_docs 并指定 technology: graphql 获取完整文档。
主要能力:
- 模式定义:type、input、Query、Mutation,建议 ID 使用 ID! 标量,变更使用 input 类型。
- 解析器:在 context 中访问数据库,User.posts 等字段通过 parent.id 关联查询。
- 查询与变更:支持变量(如 $id、$input)与片段复用。
- 生产实践:DataLoader 批量加载防止 N+1;查询深度限制(如 depthLimit(10))与复杂度限制;生产环境关闭 introspection;字段级授权(graphql-shield);对变更限流;自定义错误格式化避免泄露内部错误;Relay 风格游标分页;请求日志与耗时、错误率、复杂度等监控指标。
- 代码生成:使用 @graphql-codegen/cli 与 @graphql-codegen/client-preset,通过 codegen.ts 配置 schema 与 documents,生成 TypeScript 类型与 hooks。
必要用法示例: 安装代码生成:npm install -D @graphql-codegen/cli @graphql-codegen/client-preset 深度限制:validationRules: [depthLimit(10)] DataLoader 需按请求创建,放在 context 中。
适用场景:需要灵活字段查询的 API、前后端类型共享、需要批量数据加载与细粒度授权的服务。
限制与不适用:不覆盖 REST API 设计、OpenAPI/Swagger 文档、tRPC 类型安全 API,以及从 schema 生成 GraphQL 类型(应使用 graphql-codegen 技能);简单 CRUD 场景若 REST 足够则不必使用。
官方链接、价格与平台支持等信息暂未提供。