分类

OpenAPI 变更破坏检测器

对比 OpenAPI 或 GraphQL schema,标记 breaking changes,并生成面向 API 团队的影响报告

示例结果

2 个示例

在发布前发现被删除的响应字段

对比两个 OpenAPI 版本,提前标记 200 响应中被移除的属性

{
  "releaseRisk": "high",
  "summary": {
    "breakingChanges": 1
  },
  "changes": [
    {
      "path": "GET /users/{id} -> response 200.email",
      "summary": "Response field removed"
    }
  ]
}
查看输入参数
{ "oldSchema": "openapi: 3.0.0\npaths:\n /users/{id}:\n get:\n responses:\n \"200\":\n description: ok\n content:\n application/json:\n schema:\n type: object\n properties:\n id: { type: string }\n email: { type: string }\n", "newSchema": "openapi: 3.0.0\npaths:\n /users/{id}:\n get:\n responses:\n \"200\":\n description: ok\n content:\n application/json:\n schema:\n type: object\n properties:\n id: { type: string }\n", "schemaType": "openapi", "includeImpactAnalysis": true }

审查 GraphQL 输入契约变更

识别输入对象中新增加的必填字段,便于前端和移动端在上线前更新 mutation

{
  "schemaType": "graphql",
  "summary": {
    "totalChanges": 1,
    "breakingChanges": 1,
    "dangerousChanges": 0,
    "nonBreakingChanges": 0
  },
  "impactedAreas": [
    "field"
  ],
  "releaseRisk": "high",
  "changes": [
    {
      "severity": "breaking",
      "area": "field",
      "path": "input:CreatePostInput.category",
      "summary": "Required input field added",
      "impact": "Mutations or queries sending this input object must populate the new required field."
    }
  ]
}
查看输入参数
{ "oldSchema": "input CreatePostInput { title: String! }\ntype Mutation { createPost(input: CreatePostInput!): String! }", "newSchema": "input CreatePostInput { title: String!, category: String! }\ntype Mutation { createPost(input: CreatePostInput!): String! }", "schemaType": "graphql", "includeImpactAnalysis": true }

关键信息

分类
Development
输入类型
textarea, select, text, checkbox
输出类型
json
样本覆盖
4
支持 API
Yes

概览

OpenAPI 变更破坏检测器是一款专为 API 团队设计的 Schema 对比工具。通过输入新旧版本的 OpenAPI 或 GraphQL 契约文件,工具能自动识别并标记出可能导致客户端崩溃的破坏性变更(Breaking Changes),如删除响应字段或新增必填参数,并生成结构化的影响分析报告,帮助开发者在发布前拦截潜在风险,保障接口的向下兼容性。

适用场景

  • 在 API 网关或后端服务发布新版本前,需要验证接口契约是否向下兼容时。
  • 前端或移动端团队需要评估后端 GraphQL Schema 变更对现有查询和变更(Mutation)的影响时。
  • 进行代码审查(Code Review)时,需要快速定位 OpenAPI 规范文件中被修改、删除或新增的字段时。

工作原理

  • 在输入框中分别粘贴旧版本和新版本的 OpenAPI (YAML/JSON) 或 GraphQL SDL 文本。
  • 选择 Schema 类型(支持自动检测、OpenAPI 或 GraphQL),并勾选是否包含影响分析。
  • 工具将解析并对比两个 Schema 的结构差异,提取出所有变更项。
  • 输出 JSON 格式的差异报告,按严重程度(如破坏性变更)分类,并评估整体发布风险。

使用场景

后端开发人员在合并 PR 前,对比修改前后的 swagger.yaml,确保没有意外删除客户端依赖的字段。
GraphQL API 维护者在迭代版本时,检查是否在 Input 对象中添加了新的必填项,避免破坏现有的前端 Mutation 请求。
测试工程师在回归测试阶段,通过对比接口文档版本,快速圈定受影响的 API 范围以制定测试计划。

用户案例

1. 在发布前发现被删除的响应字段

后端开发工程师
背景原因
团队正在重构用户服务,清理了一些被认为不再使用的旧字段,准备发布新版本。
解决问题
需要确认重构后的 OpenAPI 规范是否意外移除了前端仍在使用的响应字段,导致线上故障。
如何使用
将旧版和新版的 OpenAPI YAML 分别粘贴到旧 Schema 和新 Schema 输入框中,选择 openapi 类型并开启影响分析。
示例配置
{
  "schemaType": "openapi",
  "includeImpactAnalysis": true
}
效果
工具检测到 200 响应中 email 字段被移除,标记为破坏性变更(Breaking Change),并提示发布风险为高(high),成功在上线前拦截了该问题。

2. 审查 GraphQL 输入契约变更

前端架构师
背景原因
后端团队更新了 GraphQL Schema,在创建文章的 Mutation 中增加了一个分类字段。
解决问题
需要评估这个新字段是否会破坏现有的前端请求逻辑。
如何使用
将更新前后的 GraphQL SDL 粘贴到对比框中,选择 graphql 类型进行检测。
示例配置
{
  "schemaType": "graphql",
  "includeImpactAnalysis": true
}
效果
报告明确指出 CreatePostInput 中新增了必填字段 category,属于破坏性变更,提醒前端团队必须在发版前同步更新 Mutation 传参。

用 Samples 测试

development

相关专题

常见问题

支持哪些类型的 API 规范文件?

支持 OpenAPI (Swagger) 的 YAML 或 JSON 格式,以及 GraphQL 的 SDL (Schema Definition Language) 格式。

什么是破坏性变更(Breaking Change)?

指可能导致现有客户端请求失败的修改,例如删除已有的响应字段、修改字段类型或在请求体中新增必填参数。

工具能自动检测 Schema 类型吗?

可以。在“Schema 类型”选项中选择“Auto detect”,工具会根据输入内容自动识别是 OpenAPI 还是 GraphQL。

影响分析报告包含哪些内容?

报告包含整体发布风险评估(如 high)、变更总数统计,以及具体的变更路径、变更类型和对客户端的潜在影响说明。

我的 API 规范数据安全吗?

安全的。所有的 Schema 解析和对比均在处理时即时完成,工具不会永久存储您的 API 规范内容。

API 文档

请求端点

POST /zh/api/tools/openapi-diff-breach-detector

请求参数

参数名 类型 必填 描述
oldSchema textarea -
newSchema textarea -
schemaType select -
inputFormat text -
includeImpactAnalysis checkbox -

响应格式

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
JSON数据: JSON数据

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-openapi-diff-breach-detector": {
      "name": "openapi-diff-breach-detector",
      "description": "对比 OpenAPI 或 GraphQL schema,标记 breaking changes,并生成面向 API 团队的影响报告",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=openapi-diff-breach-detector",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]