GraphQL 模式缝合与联邦代理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的说明,将 @user_3c6cb52e/graphql-schema-stitching-federation-agent 安装到 AI 助手中。
技能介绍
当 GraphQL 子图联邦超出手工维护的边界
在 GraphQL 联邦架构中,团队通常将领域拆分为多个 subgraph,各自维护独立的 schema。随着服务数量增长,将分散的 schema 聚合成统一的 supergraph 成为难题:跨服务的实体关系需要通过 @key 声明,共享字段要标记 @shareable,字段冲突则依赖 @override 规则解决。手工编写这些指令不仅易错,还会让部署流程变得脆弱——一个拼写错误就可能导致组合验证失败,影响整个联邦的可用性。
这个技能接管了什么
该技能将 Apollo Federation v2 的组合流程从手工脚本中解放出来,直接面向 subgraph schema 输入,完成以下工作:
- 校验组合规则:在提交部署前检查
@key、@shareable、@override指令的合法性,确保实体解析器配置正确,避免运行时出现悬空引用。 - 生成 Rover CLI 部署清单:输出符合
rover工具链的配置文件,使 supergraph 的上传、版本管理和环境切换可以直接走标准部署流程,而不需要临时拼凑命令行参数。
核心步骤围绕 schema 的读取、指令解析、规则校验和清单输出展开,适合集成到 CI 流水线或预发布检查环节。
适用边界与注意点
- 该技能的校验深度取决于 Apollo Federation v2 的组合规范,若你的 schema 使用了联邦 v1 的旧式指令或自定义扩展,可能需要额外的适配工作。
- 它处理的是 schema 层面的组合与验证,不涉及 runtime 的请求代理、缓存策略或性能调优——后者通常由网关层或执行引擎负责。
- 底层依赖 GraphQL.js 作为通用实现,这意味着项目需要在 Node 环境中运行,并兼容 CommonJS(
require())与 ESModule(import)两种模块体系。
使用场景
- 团队拆分了多个 subgraph,需要定期将各服务 schema 合并为统一 supergraph 并验证联邦组合是否成功
- CI 流水线中需要在合并请求阶段自动检查 @key 和 @shareable 指令的配置是否符合规范,避免错误 schema 上线
- 将新的 subgraph 加入现有联邦时,需要生成 rover CLI 可用的部署清单并完成配置校验
- 排查字段归属冲突时,需要通过 @override 指令声明覆盖策略并确认组合规则不破坏其他服务的数据契约
适合人员
- 微服务架构师,负责跨团队 GraphQL 子图联邦的 schema 设计与拆分方案
- 平台工程负责人,需要确保多个 subgraph 合并时不会因指令冲突导致线上故障
- DevOps 工程师,要将 supergraph 组合校验集成到 CI/CD 流程并自动化 Rover 部署
- GraphQL 网关维护者,需要理解 @key 等指令对运行时查询路由的影响并处理联邦规则演进