首页/开发/代码质量与评审速查/评审检查项:接口与兼容性
代码评审64 条

评审检查项:接口与兼容性

接口变更评审:公有 API 的增删改是否破坏兼容、默认值与序列化格式变化、版本策略与弃用流程是否完整。

接口变更怎么审

接口评审的核心是兼容性:公有 API 的增删改会不会让调用方出错,默认值、错误码与序列化格式的变化是否被下游感知,以及版本策略与弃用流程是否完整。接口一旦发布,改动成本就从「改代码」变成「协调所有调用方升级」,因此这类改动值得评审时多花时间。

基本信息

检查对象函数与方法签名、HTTP 接口、消息格式、配置项
兼容检查字段增删、类型变化、默认值、错误码与序列化格式
弃用流程先标记弃用、给出替代方案与时间窗,到期再移除
证据要求涉及兼容性的改动应附影响面与回滚分析

逐项看什么

  • 破坏性变更识别:删字段、改类型、改语义、改默认值。
  • 序列化细节:可选字段是否变为必填,字段编号与键名变化的影响。
  • 调用方盘点:公共接口变更是否覆盖了所有已知使用方。
  • 错误语义:错误码与异常类型是否变化,调用方的分支逻辑是否会失效。
  • 弃用流程:是否先标记、是否有迁移窗口、是否通知了相关方。

变更类型与兼容性

变更是否破坏兼容说明
新增可选字段通常不破坏调用方忽略即可,需注意默认值语义
删除或重命名字段破坏调用方解析会失败
修改默认值常见隐性破坏行为静默改变,最难排查
收窄参数取值范围破坏既有合法调用变为非法
放宽取值范围一般安全需确认下游能处理新值

兼容性检查清单

兼容性检查清单
# 1. 这次改动是否有字段删除、改类型、改默认值
# 2. 是否有调用方在按旧格式解析结果
# 3. 错误码与异常类型是否变化
# 4. 是否需要先发布兼容版本(新旧都支持)再切换
# 5. 是否给出弃用标记、替代方案与移除时间
涉及兼容性的改动,评审时应要求作者给出兼容性与回滚分析,而不是事后补文档。
先扩后缩是常用节奏:新增字段与新路径先并行存在,确认调用方切换完成后再清理旧路径。

易错点

  • 默认值的小变化被当作非破坏性:下游行为静默改变,问题出现时很难定位。
  • 删除字段不走过弃用流程:调用方升级时直接失败。
  • 只改服务端不盘点调用方:遗漏的内部系统在生产上才暴露。
  • 错误码变化不记录:依赖错误码的重试或告警逻辑随之失效。

数据来源与参考

  • Semantic Versioning 2.0.0(破坏性变更定义)
  • Google API Design Guide(兼容性策略)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌