SuperAPI AI 工具集

graphql-patterns

编程与开发

查看项目

更新于 10-16 03:40

技能介绍

用途:在设计、构建或运维 GraphQL API(Apollo Server + TypeScript)时使用,包括从 REST 迁移、采用 Relay 分页、DataLoader、指令鉴权或 Federation,以及为生产环境加固 GraphQL 服务。纯 REST/gRPC 场景不适用;若需针对恶意输入做威胁建模,应先加载 graphql-security.md。

主要能力:以 schema 为契约,先按真实 UI 形状写 SDL,再建模关系、接 context(鉴权与 loaders)、加深度与复杂度校验、接入 graphql-codegen,并用 formatError 屏蔽生产堆栈。规范要求列表默认 [T!]!、mutation 使用 input/payload 类型、resolver 保持纯函数、跨关系查询走 DataLoader、生产环境启用深度限制、复杂度限制与错误屏蔽。

使用方式:按工作流先写 SDL,再写 resolver;context 中一次性解码 JWT 并构建每请求 DataLoader;用 graphql-depth-limit 与 graphql-validation-complexity 作为 validationRules;用 codegen.yml 生成类型,schema 或操作变更后运行 yarn generate,CI 校验生成文件是否漂移;订阅使用 graphql-ws,多节点部署用 Redis PubSub;Federation v2 用 rover supergraph compose 在 CI 组合,不手写 supergraph。

适用场景:新 GraphQL API 设计、REST 迁移、多团队子图联邦、需要类型端到端与生产加固的服务。

限制:Apollo Server 4 不自带上传,需 graphql-upload-minimal;DataLoader 是每请求优化,不替代 HTTP 或 Redis 缓存;非 ID 键查询、超大值形状不宜用 DataLoader;totalCount 在大表上开销高,应设为可空。具体收费、价格与平台信息暂未提供。