快捷搜索:  汽车  科技

实际开发常写的接口(优雅设计接口版本号)

实际开发常写的接口(优雅设计接口版本号)

作者:happyJared

来源:https://blog.mariojd.cn/how-to-design-spring-boot-api-version-number-elegantly.html

一般来说,系统上线以后,需求仍会发生变动,功能也会迭代更新。可能是接口参数发生变更,也有可能是业务逻辑需要调整,如果直接在原来的接口上进行修改,必然会影响原有服务的正常运行。

常见的解决方案,是在接口路径中加入版本号用于区分,此外还可以在参数甚至 header 里带上版本号。这里以在请求路径中带上版本号为例,如:http://IP:PORT/api/v1/test ,v1 即代表的是版本号。当然了,可以像这样,直接写死在 @RequestMapping("api/v1/test")属性中,不过下面提供了更为优雅的解决方案。

1.自定义版本号标记注解


实际开发常写的接口(优雅设计接口版本号)(1)

2.重写相应的 RequestCondition

实际开发常写的接口(优雅设计接口版本号)(2)


实际开发常写的接口(优雅设计接口版本号)(3)

3.重写部分 RequestMappingHandlerMapping 的方法

实际开发常写的接口(优雅设计接口版本号)(4)

4.配置注册自定义的 CustomRequestMappingHandlerMapping


实际开发常写的接口(优雅设计接口版本号)(5)

5.编写接口,标记上相应的 @ApiVersion

实际开发常写的接口(优雅设计接口版本号)(6)

6.启动 Application,测试及查看结果

实际开发常写的接口(优雅设计接口版本号)(7)


猜您喜欢: