背景
在常规的业务开发中假设我们的接口提供给客户端同时提供移动端应用,但是在产品迭代的过程中客户端迭代速度更快需要将部分接口结构更新原来的接口又不得不升级,但是移动端还是保持原来接口结构。遇到类似的情况我们可以考虑使用 API 版本控制
API 版本控制模式
常用的API版本控制模式有以下三种:
- 无版本模式
- API 自带版本模式
- 兼容性版本模式
无版本模式
使用这种模式意味着服务端每个 API 只提供一个版本,如果 API 升级结构调整所有调用方都需要同步更新 API 结构,任何 API 的修改可能都会影响到所有用户
API 自带版本模式
该模式下同一个名称 API 可以建立多个版本,API 调用方会根据自己的需求选择使用对应的API版本。新版本和旧版本同时存在,即使用户使用是旧版版也不会受到影响
兼容性版本模式
每个 API 只有一个版本,API 需要兼容以前老版本 API 的功能,所有版本用户都调用同一个版本 API,通过内部兼容的方式实现新旧版本 API 互相兼容
版本控制实现
无版本模式实现方案
-
新功能直接在旧 API 上修改,API 修改部分同步给客户端强制客户端一起升级(热更新),在用户体验会受到一定影响
-
更换 API 名称,新功能使用新的 API 名称,新版本客户端调用使用新 API 名称