← 中文资源

简体中文版本

GraphQL Schema 治理工作流

评审 schema 变更的破坏性影响、以弃用替代直接删除、跟踪字段用量,并在 CI 中门控 schema。

阅读英文原文

概述

GraphQL 的灵活性使字段删除成为对既有查询的破坏。每次变更先做 schema 差异分类,能区分安全与破坏;弃用而非删除、跟踪用量、零用量后再移除,再以 CI 门控,可让 schema 持续演进而不伤害客户端。

关键步骤

  1. 每次变更运行 schema 差异并区分破坏与安全。
  2. 以弃用替代删除并跟踪字段用量。
  3. 仅在用量归零后移除弃用字段。
  4. 在 CI 中按分类门控 schema 检查。

验证

  • 安全变更通过 CI,破坏性变更被拒。
  • 字段删除前用量为零。
  • 弃用字段有跟踪记录。
  • 客户端查询未被打断。

决策点

破坏性变更只应在新大版本与迁移时间线下允许;用量遥测会漏掉低频客户端,删除前应结合消费方确认。

适用范围

本条目围绕「GraphQL Schema 治理工作流」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

npx graphql-inspector diff old.graphql new.graphql
# breaking changes are flagged with a non-zero exit