实战:修改接口逻辑
Claude Code 接口修改教程:接口逻辑比页面文案风险更高,要先定位调用链、输入输出、影响范围,再做最小修改和验收。
先分析,不要直接改
接口逻辑修改要先看调用链。只改返回值表面,可能会破坏调用方、测试、缓存、权限和错误处理。
/plan 请帮我修改一个接口逻辑。 接口: 【接口路径或方法名】 当前行为: 【现在怎么返回】 期望行为: 【希望怎么返回】 限制: 1. 先只读分析 Controller、Service、Mapper/Repository、测试和调用方。 2. 不要修改数据库结构。 3. 不要改无关接口。 4. 不要顺手重构整个服务。 5. 先给出最小修改方案和影响范围。
接口任务要确认什么
- 接口路径、方法名或调用入口。
- 当前输入和输出。
- 期望输入和输出。
- 正常流程和异常流程。
- 调用方有哪些。
- 是否影响数据库、权限、缓存、日志。
- 是否已有测试或接口文档。
可以先让 CC 把这些信息整理成表格。表格比长段解释更容易发现缺口:
| 项目 | 当前确认结果 |
|---|---|
| 入口 | 路由、Controller 或 Handler |
| 请求 | 参数、Body、Header、鉴权信息 |
| 响应 | 字段、错误码、状态码 |
| 调用方 | 页面、服务、定时任务或外部系统 |
| 数据 | 读取、写入、事务、缓存 |
| 验证 | 已有测试、接口文档、人工调用方式 |
让 CC 画调用链
请只读梳理这个接口调用链,不要修改文件。 接口: 【路径或方法名】 请输出: 1. 路由或入口在哪里。 2. Controller / Handler 在哪里。 3. Service 或业务逻辑在哪里。 4. 数据读取或写入在哪里。 5. 调用方有哪些。 6. 测试或文档在哪里。 7. 修改风险是什么。
如果项目里有多个同名接口或多个服务入口,继续补一句:
请确认本次要改的是哪个真实入口。 要求: 1. 列出所有可能匹配的接口或方法。 2. 判断哪个和需求最相关。 3. 说明判断依据。 4. 不确定时不要修改文件,先向我确认。
兼容性先说清楚
接口修改最容易出问题的地方不是“新逻辑不会写”,而是旧调用方被破坏。修改前先让 CC 判断兼容性:
| 修改内容 | 风险 |
|---|---|
| 新增响应字段 | 通常风险较低,但要确认前端是否会误用 |
| 删除响应字段 | 高风险,旧调用方可能直接报错 |
| 修改字段含义 | 高风险,旧数据判断可能全部变错 |
| 修改错误码 | 中高风险,前端提示和重试逻辑可能失效 |
| 修改鉴权规则 | 高风险,可能影响权限和安全 |
| 修改默认排序或过滤 | 中风险,页面结果可能变化 |
可复制:
请先判断本次接口修改的兼容性。 请说明: 1. 是否新增字段、删除字段或改变字段含义。 2. 是否改变状态码、错误码或错误文案。 3. 是否影响已有调用方。 4. 是否需要保留旧行为或做兼容处理。 5. 如果有高风险,请先给替代方案,不要直接改。
确认后执行
可以按最小方案修改接口逻辑。 要求: 1. 只修改和这个接口直接相关的代码。 2. 保持原有正常流程不受影响。 3. 如果有测试,请补充或运行相关测试。 4. 如果不能测试,请说明人工调用方式。 5. 完成后说明输入、输出、影响范围和剩余风险。
正常和异常都要验收
请验收接口逻辑修改。 请覆盖: 1. 正常输入。 2. 缺少必填参数。 3. 参数类型错误。 4. 权限不足。 5. 数据不存在。 6. 调用方兼容性。 7. 是否影响旧字段或旧错误码。
如果项目没有自动化接口测试,也可以让 CC 给人工调用清单,不必自己硬想:
如果当前项目没有可直接运行的接口测试,请给出人工验收清单。 要求: 1. 正常请求示例。 2. 异常请求示例。 3. 每个请求预期状态码。 4. 每个请求预期响应关键字段。 5. 需要登录或 Token 时,只说明需要什么权限,不要要求我暴露真实密钥。
验收重点
- 异常输入是否按预期返回。
- 正常输入是否仍然正常。
- 调用方是否受影响。
- 数据库结构和权限逻辑是否没有被误改。
不要让 CC 顺手做这些
- 改数据库结构。
- 改所有接口风格。
- 重构整个 service。
- 删除旧字段。
- 改权限规则。
- 改生产配置。
让 CC 解释 diff
接口改完后必须看 diff 解释,因为接口修改经常会牵出一串文件:
请解释本次接口修改的 diff。 请按文件说明: 1. 这个文件为什么必须改。 2. 改动对应需求里的哪一点。 3. 是否改变了旧接口行为。 4. 是否存在数据库、权限、缓存或日志影响。 5. 有没有文件属于顺手修改,如果有请指出。
如果接口文档也要更新
如果本次接口行为改变,请检查是否需要更新文档。 请只更新和本次接口相关的说明: 1. 请求参数。 2. 响应字段。 3. 错误码。 4. 示例。 5. 兼容性说明。 不要编造没有实现的行为。
收尾判断
接口任务最后要让 CC 给出明确结论:
请给出接口任务收尾判断。 请输出: 1. 本次接口行为变化是什么。 2. 哪些调用方确认不受影响。 3. 哪些场景已经验证。 4. 哪些场景没有验证,为什么。 5. 是否建议进入 /code-review。
验收结果
- 你会让 CC 先读调用链。
- 你知道接口任务要限制数据库和无关接口。
- 你知道验收必须覆盖正常和异常流程。
- 你知道接口文档和调用方兼容性也要检查。