92 lines
3.1 KiB
Markdown
92 lines
3.1 KiB
Markdown
# API 路径变更通知模版
|
||
|
||
对应 `11.py` → `build_path_change_markdown()`。
|
||
适用:**新增接口**、**删除接口**、**修改路径**。
|
||
|
||
---
|
||
|
||
## 完整示例(修改路径)
|
||
|
||
```
|
||
# 【API路径变更通知】
|
||
|
||
变更类型: <font color="warning">**修改路径**</font>
|
||
路径: <font color="info">**jnpf-ftb/jnpf-ftb-biz/src/main/java/jnpf/workflow/controller/ApplyClockInController.java**</font>
|
||
分支: code/code_change_detection_v1.0
|
||
修改人: dongzi
|
||
修改时间: 2026-06-08 16:30:00
|
||
|
||
---------------------------------------
|
||
|
||
#### 【URI变更详情】
|
||
- **原路径:** <font color="warning">~~`/apply/clockIn`~~</font> ← <font color="warning">**旧路径**</font>
|
||
- **新路径:** <font color="info">**`/apply/clockIn/v2`**</font> ← <font color="info">**新路径**</font>
|
||
```
|
||
|
||
---
|
||
|
||
## 示例(新增接口)
|
||
|
||
```
|
||
# 【API路径变更通知】
|
||
|
||
变更类型: <font color="warning">**新增接口**</font>
|
||
路径: <font color="info">**jnpf-ftb/.../ApplyClockInController.java**</font>
|
||
分支: code/code_change_detection_v1.0
|
||
修改人: dongzi
|
||
修改时间: 2026-06-08 16:30:00
|
||
|
||
---------------------------------------
|
||
|
||
#### 【URI变更详情】
|
||
- **原路径:** `-`
|
||
- **新路径:** <font color="info">**`/apply/clockIn`**</font> ← <font color="info">**新增**</font>
|
||
```
|
||
|
||
> 若新增接口同时有参数变更,可在路径通知后追加【接口参数变动详情】区块(见 `api-param-change.md`)。
|
||
|
||
---
|
||
|
||
## 示例(删除接口)
|
||
|
||
```
|
||
# 【API路径变更通知】
|
||
|
||
变更类型: <font color="warning">**删除接口**</font>
|
||
路径: <font color="info">**jnpf-ftb/.../ApplyClockInController.java**</font>
|
||
分支: code/code_change_detection_v1.0
|
||
修改人: dongzi
|
||
修改时间: 2026-06-08 16:30:00
|
||
|
||
---------------------------------------
|
||
|
||
#### 【URI变更详情】
|
||
- **原路径:** <font color="warning">**`/apply/clockIn/{id}`**</font> ← <font color="warning">**已删除**</font>
|
||
- **新路径:** `已删除`
|
||
```
|
||
|
||
---
|
||
|
||
## 字段说明
|
||
|
||
| 占位符 | 来源 |
|
||
|--------|------|
|
||
| 变更类型 | `新增接口` / `删除接口` / `修改路径` |
|
||
| 路径 | Controller `.java` 相对仓库根路径(`source_file`) |
|
||
| 原路径 / 新路径 | 类级 `@RequestMapping` + 方法级 Mapping 拼接后的 URI |
|
||
| HTTP 方法 | 路径变更通知中默认不展示;与请求方式变更模版区分 |
|
||
|
||
## 检测逻辑(JavaParser)
|
||
|
||
1. 解析旧/新 commit 下同一 Controller 源码 AST
|
||
2. 提取每个方法的 `httpMethod` + `uri`(已有 `EndpointParser` 逻辑)
|
||
3. 用**方法指纹**(类文件 + 方法名,如 `ApplyClockInController.java#getApply`)匹配新旧接口;参数增删改由 ParameterDiffEngine 检测
|
||
4. 指纹相同且 URI 不同 → **修改路径**
|
||
5. 仅旧有新无 → **删除**;仅新有旧无 → **新增**
|
||
|
||
## 实现
|
||
|
||
- `EndpointSnapshotParser` — 解析快照
|
||
- `EndpointDiffEngine` — 对比产出 `EndpointChangeReport.is_renamed_endpoint` 等标志
|
||
- `ApiChangeNotifier.buildPathChangeMarkdown()` — 渲染本模版
|