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 是向后兼容的——旧的字段保留,新字段添加。使用旧版本的客户端不会崩溃。
更多练习:
- 数据库表新增一列——向后兼容吗?
- 数据库表删除一列——向后兼容吗?
- API 新增一个可选参数——向后兼容吗?
- API 删除一个返回字段——向后兼容吗?
- 修改 API 的 URL 路径——向后兼容吗?