GraphQL 模式漂移检测器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/graphql-schema-drift-detector。
技能介绍
要解决的问题
GraphQL 模式会在多个服务、分支和部署环境中独立演进。当 schema.graphql 或 introspection 结果被替换、字段被删除、返回类型被收窄、参数被重命名,或已被标记为废弃的指令被重新使用时,这些破坏性变更往往要到发布后才暴露。等到线上客户端开始报错再回查,定位成本已经很高。本技能关注的是在发布前把模式漂移讲清楚。
核心能力与工作流程
技能围绕 graphql-inspector 和 GraphQL introspection query 工作:
- 将当前模式与目标模式分别整理为可比较的基线
- 按类型、字段、参数、指令和废弃状态逐项比对
- 识别被移除的字段、发生变更的类型签名、参数或默认值调整,以及废弃指令的使用情况
关键步骤为:读取或拉取基线模式与候选模式,执行对比分析,输出哪些条目属于破坏性变更,哪些只是可观察但可安全兼容的变化。
适用边界与注意点
它解决的是静态模式层面的漂移,不负责运行时行为验证,也不会判断查询是否超时或权限是否正确。有效比对依赖可用的 introspection 数据;如果 schema 禁用了 introspection,或来源不可读,就无法得到可靠结论。破坏性变更的归类也取决于团队对兼容规则的定义:新增可选字段通常可接受,而删除字段或收紧可空性需要单独评估。
使用场景
- 发布前在 CI 中对比基线与候选 introspection,检查字段删除或类型收窄等破坏性变更。
- 为新分支或实验服务做模式比对,确认字段修改是否会造成破坏性变更。
- 线上 GraphQL 查询报错时,对比基线与线上 introspection,定位漂移项。
- 版本评审中核对变更清单,说明字段移除、类型修改与废弃指令使用。
适合人员
- GraphQL 服务端工程师:需要在合并 PR 或发布前确认模式变更是否安全。
- API 平台负责人:需要统一多个服务的模式基线,避免破坏性变更进入生产。
- 前端 GraphQL 客户端工程师:需要在联调或线上排查字段缺失、类型收窄导致的报错。
- 负责 GraphQL 版本评审的技术负责人:需要快速拿到变更清单和兼容风险判断。