开发APP时,随着业务需求的不断变化,服务端接口返回的数据也就会有各种变动,但由于APP无法动态更新请求接口,那么服务端接口变动时就需要兼容旧版本,所以服务端这边就需要对接口做版本控制
版本控制方式(这里使用 Symfony 框架实现了第一种和第四种):
- 使用一个 URI 参数:https://example.com/api/v1/login
- 使用查询参数:https://example.com/api/login?version=v1
- 自定义 Accept mime-type: Accept: application/json; version=1
- 自定义 Header:VERSION: 1
目录结构
1 | Bundles/ |
接口基类
1 | // BaseController.php |
接口相关代码
1 | // V1 版本 |
注册监听器服务
1 | services: |
自定义HEADER参数
实现原理:获取HEADER的自定义参数VERSION, 根据版本号调用不同方法
API接口:
1. localhost:8080/user/login HEADER:VERSION = 1
2. localhost:8080/user/login HEADER:VERSION = 1.1
3. localhost:8080/user/login HEADER:VERSION = 2
4. localhost:8080/user/login HEADER:VERSION = 2.1
路由配置
1 | user_login: |
请求监听器
1 |
|
URI参数, 动态匹配接口版本号, 根据版本号调用不同方法
API接口:
1. localhost:8080/user/login
2. localhost:8080/user/v1.1/login
3. localhost:8080/user/v2/login
4. localhost:8080/user/v2.1/login
接口路由
1 | #=================================版本V1.0 API START===================================# |
请求监听器
1 |
|