RESTful API进行版本控制

第一种方案:不使用版本

接口业务修改强制要求前端、客户端进行相应的升级和更新,可能存在兼容的问题

第二种方案:不使用版本

直接更换API名称,新功能使用新的API,老版本使用老的API

第三种方案:URI上添加版本号

http://xxx.com/api/user/login
http://xxx.com/api/v2/user/login

第四种方案:URI参数版本号

在URI的连接带参数或者在请求参数上加一个版本号

第五种方案:使用请求头来区分版本号

http://xxx.com/api/user/login
headers=[X-API-VERSION=1.0]
http://xxx.com/api/user/login
headers=[X-API-VERSION=2.0]

@GetMapping(value="/user/login",headers = "X-API-VERSION=1.0")
public Object v1(){
  return new XXX("v1");
}

@GetMapping(value="/user/login",headers = "X-API-VERSION=2.0")
public Object v2(){
  return new XXX("v2");
}

第六种方案:通过媒体类型进行版本控制

http://xxx.com/api/user/login
headers=[Accept=application/api-v1+json]
http://xxx.com/api/user/login
headers=[Accept=application/api-v2+json]

@GetMapping(value="/user/login",produces= "Accept=application/api-v1+json")
public Object v1(){
  return new XXX("v1");
}

@GetMapping(value="/user/login",produces= "Accept=application/api-v2+json")
public Object v2(){
  return new XXX("v2");
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容