# OpenAPI 变更破坏检测器

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

> 标准页面: https://elysiatools.com/zh/tools/openapi-diff-breach-detector

- **分类:** Development

- **关键词:** openapi, graphql, diff, breaking changes, schema, api

## 概述

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

## 输入项

- **旧 Schema** (textarea): Paste the previous OpenAPI YAML/JSON or GraphQL SDL here...
- **新 Schema** (textarea): Paste the updated OpenAPI YAML/JSON or GraphQL SDL here...
- **Schema 类型** (select)
- **输入格式** (text)
- **包含影响分析** (checkbox)

## 适用场景

- 在 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 范围以制定测试计划。

## 常见问题

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

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

### 什么是破坏性变更（Breaking Change）？

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

### 工具能自动检测 Schema 类型吗？

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

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

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

### 我的 API 规范数据安全吗？

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

## 相关工具

- [API 契约压力测试器](https://elysiatools.com/zh/tools/api-contract-stress-tester): 根据 OpenAPI 3.x 规范批量生成边界值测试请求，并可选发送到真实后端以发现契约不一致。
- [Tailwind 色板同步器](https://elysiatools.com/zh/tools/tailwind-color-palette-sync): 输入一组 HEX,选择命名规则(色阶 50–950 / 单名 / 对象嵌套),自动生成 tailwind.config.ts 的 theme.extend.colors 片段,每个色阶同时给出 WCAG AA/AAA 对比等级,可选暗色模式。
- [Cron 表达式解释器](https://elysiatools.com/zh/tools/cron-expression-explainer): 解析 5 段 / 6 段 / Quartz cron 表达式为自然语言调度描述，按字段拆解，并按任意 IANA 时区列出接下来 N 次执行时间，附带 AI 生成的本地化自然语言解释
- [CSS 瀑布流布局生成器](https://elysiatools.com/zh/tools/css-masonry-layout-generator): 生成纯 CSS 的瀑布流布局代码，支持响应式断点、间距设置和可跳过元素
- [cURL 转 Go (net/http)](https://elysiatools.com/zh/tools/curl-to-go): 将 cURL 命令转换为 Go net/http 代码片段，包含 http.NewRequest、请求头和请求体
- [cURL 转 JavaScript (axios)](https://elysiatools.com/zh/tools/curl-to-js-axios): 将 cURL 命令转换为 JavaScript axios 代码片段，使用配置对象、请求头和数据
- [cURL 转 JavaScript (fetch)](https://elysiatools.com/zh/tools/curl-to-js-fetch): 将 cURL 命令转换为 JavaScript fetch() 代码片段，包含请求头、请求体和方法
- [cURL 转 PHP (cURL)](https://elysiatools.com/zh/tools/curl-to-php): 将 cURL 命令转换为 PHP cURL 代码片段，包含 curl_setopt、请求头和 POST 字段

## 示例

- [OpenAPI/Swagger 示例](https://elysiatools.com/zh/samples/openapi): OpenAPI/Swagger 规范示例，用于 REST API 文档和契约定义
- [OpenAPI/Swagger 示例](https://elysiatools.com/zh/samples/openapi-swagger): 使用 OpenAPI 3.0 和 Swagger 规范的 RESTful 服务综合 API 文档示例
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换

## 相关内容

- [OpenAPI 文档、代码生成与契约审查工具](https://elysiatools.com/zh/hubs/openapi-utility): 在一个专题中比较 OpenAPI 代码生成、API 文档生成、Schema 差异分析、响应校验和契约测试工具，适合 API 设计与维护流程。
- [API 契约测试、Mock 与 Schema 审查工具](https://elysiatools.com/zh/hubs/api-contract-testing): 把 OpenAPI 转成文档和类型，生成 Mock，校验真实响应，并在一个专题里集中检查 Schema 破坏性变更。
- [API 版本演进、破坏性变更与发布就绪审查工具](https://elysiatools.com/zh/hubs/api-versioning-breaking-change-review): 把 API 版本对比、破坏性 schema 变化识别、真实响应兼容性验证、semver 与 changelog 审查放进同一个发布前专题。
- [文件与数据对比 / Diff 工具](https://elysiatools.com/zh/hubs/file-data-diff-comparison-tools): 并排对比两份文件、数据载荷、数据库结构或数据集，高亮其中的变化——覆盖文本、JSON、CSV/Excel、PDF、图片、音频、数据库、API 与配置文件。
