logo
8
9
WeChat Login
ci: 添加 cnb-apidiff 多平台构建与发布配置

cnb-apidiff

对比两个 Swagger (OpenAPI 2.0) 文件,生成 Markdown 格式的 API 变更日志。

功能

  • 检测接口的新增、删除、修改
  • 识别破坏性变更(删除接口/参数、类型变更等)
  • 检测请求参数和响应模型的字段级变更
  • 按 Tag 分类展示,便于定位所属模块

安装

一键安装(同时安装 cnb-sdk-generator 和 cnb-apidiff):

curl -fsSL https://cnb.cool/cnb/sdk/cnb-sdk-generator/-/git/raw/main/install.sh | sh

通过 Go 安装:

go install cnb.cool/cnb/sdk/cnb-sdk-generator/apidiff/cmd@latest

从源码构建:

go build -o cnb-apidiff ./apidiff/cmd

用法

cnb-apidiff -old <旧版swagger.json> -new <新版swagger.json> [-o 输出文件]

参数

参数必填说明
-old旧版本 Swagger 文件路径
-new新版本 Swagger 文件路径
-o输出文件路径,默认输出到 stdout

示例

# 输出到终端 cnb-apidiff -old old.json -new new.json # 输出到文件 cnb-apidiff -old old.json -new new.json -o changelog.md

输出格式

生成的 Markdown 包含以下部分:

  1. 变更概览 — 新增/修改/删除接口数量及破坏性变更统计
  2. 破坏性变更 — 需要重点关注的不兼容变更
  3. 删除接口 — 已移除的接口列表
  4. 新增接口 — 新增的接口列表
  5. 修改接口 — 变更详情,含参数和模型字段级 diff