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