SpringMVC支持接口多版本
在API接口迭代升级过程中,由于业务调整可能导致接口不兼容老版本;
此时,部分应用会通过开启强更解决此类问题;
但前端应用会有一个提审期,审核通过之前的这段时间,实际上用户是无法完全正常使用的。
基于这种场景,就诞生了此类需求,即一个接口同时支持不同版本。
目前一般采用3种方式实现:基于自定义注解实现,基于URL实现,基于SpringMVC自带特性实现
自定义注解
这种方式可以参考这篇文章,具体场景可以自定调整策略。
URL
这种方式通过在url中增加版本号实现;
如下:
GET /v1/XXXX/XXXX
GET /v2/XXXX/XXXX
SpringMVC自带特性
这种方式是目前在项目中使用的解决方案,其他请求方式类似
@GetMapping(value = "/xxxx", headers = {"version=v1"})
@GetMapping(value = "/xxxx", headers = {"version=v2"})