Agent Skills
返回列表
💻

GraphQL 模式缝合器

开发编程 更新于 2026.08.29

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

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/graphql-schema-stitcher。

技能介绍

要解决的问题

随着服务拆分,同一个 GraphQL 能力可能散落在多个独立端点后面。客户端查询一个完整业务对象时,不得不串行或并行地访问多个服务,请求次数和延迟随之上升。每个子模式各自独立演化,类型定义容易重复,字段命名也可能冲突,团队间协调成本越来越高。

核心能力与工作流程

这个技能的目标是把分散的模式收敛成一个统一入口:

  • 使用 graphql-tools 的 stitchSchemas 能力,把多个已有 schema 合并为一份可执行的统一模式。
  • 遵循 Apollo Federation v2 的联合模型组织各子服务,把跨服务数据组装成客户端可见的单一图。
  • 合并完成后,调用 rover graph check 对组合后的模式做校验,在部署前发现类型冲突、缺少 resolver 或联邦约束不满足等问题。

典型流程是:先完成各子服务的模式定义,再通过 stitching 合并为网关模式,最后用 rover 检查,通过后才对外发布。

适用边界与注意点

  • GraphQL.js 是通用库,在 Node 服务中同时支持 CommonJS 的 require() 和 ESModule 的 import。运行环境里模块解析方式不一致时,需要确认引用路径能被正确加载。
  • 模式合并不等于任意拼贴。联邦模式下,实体的解析、值对象的扩展都有明确约束,跨服务字段需要按规则声明来源。
  • rover graph check 是合并后的验证环节,它不能替代各子服务对自身模式的独立维护。

使用场景

  • 微服务团队把多个独立 GraphQL 服务的 schema 合并成统一网关,并提前跑 rover 检查避免部署故障。
  • 后端工程师使用 Apollo Federation v2 将商品、订单和用户三个子图的字段整合到同一个 GraphQL 端点中。
  • 网关维护者需要在使用 graphql-tools 拼接跨服务实体的 resolver 后,验证合并后的全局模式是否符合规范。

适合人员

  • 负责网关开发的后端工程师,需要将公司内部多个微服务的 GraphQL 模式聚合成单一入口供前端调用。
  • Apollo Federation 技术栈的架构师,希望在部署前通过 rover 校验跨服务实体组合的正确性与规范性。
  • 中台团队的 API 维护者,日常负责使用 graphql-tools 解决多个子图模式合并时产生的字段冲突问题。