Agent Skills
返回列表
💻

GraphQL 模式注册表

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/graphql-schema-registry 到当前 AI 助手。

技能介绍

在多人协作或持续集成环境里,GraphQL schema 的变更往往悄无声息地发生:有人给字段换了个类型,有人删掉了原本公开的枚举值,直到客户端运行时报错,问题才浮出水面。这个技能要解决的正是这类破坏性变更无法提前发现、多服务组合缺乏一致性、团队内部约定难以用代码约束的问题。

核心能力

技能围绕三块能力展开:

  • 破坏性变更检测:通过 graphql-inspector 对比新旧两份 schema,识别可能让现有客户端失败的改动,例如删除字段、收紧可空性或修改默认值。
  • 模式组合:借助 Apollo Rover CLI 把分散在多个服务中的 schema 组合成单一视图,确保网关层看到的类型定义与各自服务保持同步。
  • 规则校验:利用 @graphql-eslint/eslint-plugin 编写团队自己的 ESLint 规则,在 CI 阶段拦截不符合内部约定的写法,比如禁止新增未文档化的字段。

工作方式

  1. 从 CI 或本地提交中获取当前 schema 快照,作为对比基准。
  2. 运行 graphql-inspector 将新 schema 与基准进行比对,输出破坏性变更列表。
  3. 需要合并多源时,用 Apollo Rover CLI 拉取并组合各服务的 schema 定义。
  4. 对最终 schema 执行 ESLint 校验,确保通过全部自定义规则。

适用边界

这套方案依赖 graphql 包作为底层依赖,技能文档中给出的安装路径均围绕该库展开。需要注意的是,GraphQL.js 本身是通用库,可以同时运行在 CommonJS 和 ESModule 环境里,你必须保证项目中 require() 与 import 的解析配置正确。

此外,破坏性检测的准确性取决于对比所用的历史快照是否可靠,如果基准 schema 本身已经过时,检测结果也会失真。对于完全未版本化的 schema 仓库,这套机制能提供的基础保障有限。

使用场景

  • 团队合并多个GraphQL服务的schema时,用Apollo Rover CLI生成统一视图,确保网关层类型一致。
  • 在CI流水线中对比新旧schema快照,用graphql-inspector拦截删除字段或收紧可空性的破坏性变更,避免客户端上线后报错。
  • 为团队GraphQL书写约定编写ESLint规则,在提交阶段自动拦截未文档化字段的新增,代替人工代码评审。

适合人员

  • 后端工程师:想在合并GraphQL schema前自动发现删除字段、收紧可空性等破坏性变更,防止客户端线上报错。
  • 平台架构师:管理多个GraphQL服务的组合视图,希望网关层与各服务的类型定义始终保持同步。
  • 技术负责人:想用自定义ESLint规则把团队的GraphQL书写约定固化下来,减少人工评审成本。