Files
codeCheck/target/classes/api-templates/api-path-change.md
2026-06-10 10:45:52 +08:00

89 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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>
修改人: 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>
修改人: 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>
修改人: 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()` — 渲染本模版