【Spring】接口版本控制最佳实现
【Spring】接口版本控制最佳实现
一、版本控制的常见方式:
//通过URL Path实现版本控制
@GetMapping("/v1/api/user")
public int right1(){
return 1;
}
//通过QueryString中的version参数实现版本控制
@GetMapping(value = "/api/user", params = "version=2")
public int right2(@RequestParam("version") int version) {
return 2;
}
//通过请求头中的X-API-VERSION参数实现版本控制
@GetMapping(value = "/api/user", headers = "X-API-VERSION=3")
public int right3(@RequestHeader("X-API-VERSION") int version) {
return 3;
}
如上述代码。这三种方式中,
- URL Path 的方式最直观也最不容易出错;
- QueryString 不易携带,不太推荐作为公开 API 的版本策略;
- HTTP 头的方式比较没有侵入性,如果仅仅是部分接口需要进行版本控制,可以考虑这种方式。
但是上述三种方法中只有URL Path方式最简单也不容易出错,但是因为需要因人而异,需要统一的方式来实现。
二、URL Path统一实现版本控制
相比于在每一个接口的 URL Path 中设置版本号,更理想的方式是在框架层面实现统一。如果你使用 Spr