API版本控制常用实践
各大公司做法
http://www.lexicalscope.com/blog/2012/03/12/how-are-rest-apis-versioned/
Spring Boot实践API版本管理
原理
在SpringMVC中RequestMappingHandlerMapping是比较重要的一个角色,它决定了每个URL分发至哪个Controller。
Spring Boot加载过程如下,所以我们可以通过自定义WebMvcRegistrationsAdapter来改写RequestMappingHandlerMapping。
ApiVersion.java
ApiVersionCondition.java
ApiVersioningRequestMappingHandlerMapping.java
WebMvcRegistrationsConfig.java
测试
TestVersioningController.java
TestVersioningController.java
ApiVersioningApplication.java
application.yml
项目结构
演示
v1
访问http://localhost:7905/v1/hello
v2
访问http://localhost:7905/v2/hello
v100
访问http://localhost:7905/v100/hello
參考資料
Spring Boot API 版本权限控制: http://blog.csdn.net/u010782227/article/details/74905404
让SpringMVC支持可版本管理的Restful接口:http://www.cnblogs.com/jcli/p/springmvc_restful_version.html
如何做到API兼容: https://kb.cnblogs.com/page/108253/
解析@EnableWebMvc 、WebMvcConfigurationSupport和WebMvcConfigurationAdapter: http://blog.csdn.net/pinebud55/article/details/53420481
How are REST APIs versioned?: http://blog.csdn.net/pinebud55/article/details/53420481