auto-request
Version:
通过Yapi JSON Schema生成接口Axios或Taro接口
152 lines (112 loc) • 3.02 kB
Markdown
# 版本更新日志 v2.5.2
## 🎉 重大改进:使用 Diff 格式展示接口变化
### 问题
在 v2.5.1 版本中,虽然实现了完整的接口结构对比,但在 snapshots.md 中展示新旧版本的完整 JSON 时:
- ❌ 内容太长,难以快速找到变化点
- ❌ 需要手动对比两个完整的 JSON 结构
- ❌ 信息密度低,大部分内容是未改变的
### 解决方案
**v2.5.2 版本使用 `diff` 库生成类似 `git diff` 的格式**,只展示变化的部分!
### 效果对比
#### ❌ 之前(v2.5.1)
展示完整的新旧 JSON,可能有几百行:
```markdown
**旧版本:**
```json
{
"summary": "获取授权地址",
"parameters": [...100行...],
"responses": {...200行...}
}
```
**新版本:**
```json
{
"summary": "获取授权地址",
"parameters": [...100行...],
"responses": {...200行...}
}
```
```
#### ✅ 现在(v2.5.2)
只展示变化的部分,简洁明了:
```markdown
```diff
@@ -8,6 +8,13 @@
"type": "string",
"required": true
},
+ {
+ "name": "redirect_uri",
+ "in": "query",
+ "type": "string",
+ "required": false
+ }
]
```
```
### 主要改进
1. **安装 diff 库**
```bash
npm install diff --save
```
2. **实现 generatePrettyDiff 函数**
- 使用 `diff.createPatch` 生成 unified diff
- 转换为 markdown 友好的格式
- 只保留必要的上下文
3. **更新 generateComparisonMarkdown**
- 使用 diff 格式替代完整 JSON 展示
- 输出到 ```diff 代码块
- VS Code 自动高亮显示
### 使用效果
现在在 `snapshots.md` 中会看到:
```markdown
### 修改接口详细变化
#### GET /p/oauth/url
```diff
@@ -15,6 +15,10 @@
"properties": {
"url": {
"type": "string"
+ },
+ "state": {
+ "type": "string"
+ },
+ "expires_in": {
+ "type": "integer"
}
}
```
```
### 优势
✅ **简洁** - 只显示变化的部分,不显示未改变的内容
✅ **直观** - 使用 `+` 和 `-` 清晰标记新增和删除
✅ **熟悉** - 就像 `git diff` 一样的格式
✅ **高亮** - VS Code 自动为 diff 代码块添加颜色
✅ **快速** - 一眼就能看到哪里变了
### 兼容性
✅ 完全向后兼容
✅ 所有测试通过(128 个)
✅ 不影响现有功能
### 使用方法
在你的 monorepo 项目中:
```bash
# 1. 更新到最新版本
cd /path/to/your/monorepo
pnpm install --force
# 2. 重新运行生成命令
npm run generate:api # 或你的自定义命令
# 3. 查看 snapshots.md
# 现在会看到简洁的 diff 格式!
```
### 文件变更
- `src/core/swagger-comparator.ts` - 新增 generatePrettyDiff 函数
- `package.json` - 新增 diff 依赖
- `docs/DIFF_DISPLAY_EXAMPLE.md` - 更新示例文档
### 测试结果
```
Test Suites: 9 passed, 9 total
Tests: 128 passed, 128 total
```
---
**升级建议**:强烈推荐升级!diff 格式让接口变化一目了然,大大提升查看体验。