A13进阶

向后兼容思维

30 分钟修改API/数据结构时

格式:给定一个变更需求,判断它是否向后兼容。

场景:你的 API 返回用户数据,当前格式:

{
  "name": "小明",
  "email": "xm@example.com"
}

变更需求:需要把名字拆分成姓和名。以下哪种方案是向后兼容的?

方案 A

{
  "first_name": "明",
  "last_name": "小",
  "email": "xm@example.com"
}

方案 B

{
  "name": "小明",
  "first_name": "明",
  "last_name": "小",
  "email": "xm@example.com"
}

答案方向:方案 B 是向后兼容的——旧的字段保留,新字段添加。使用旧版本的客户端不会崩溃。

更多练习

  1. 数据库表新增一列——向后兼容吗?
  2. 数据库表删除一列——向后兼容吗?
  3. API 新增一个可选参数——向后兼容吗?
  4. API 删除一个返回字段——向后兼容吗?
  5. 修改 API 的 URL 路径——向后兼容吗?

我的笔记