在以SpringBoot开发Restful接口时,由于模块,系统等业务的变化,需要对同一接口提供不同版本的参数实现(老的接口还有模块或者系统在用,不能直接改,所以需要不同版本)。如何更加优雅的实现多版本接口呢?
# 为什么接口会出现多个版本?
为什么接口会出现多个版本?
一般来说,Restful API接口是提供给其它模块,系统或是其他公司使用,不能随意频繁的变更。然而,需求和业务不断变化,接口和参数也会发生相应的变化。如果直接对原来的接口进行修改,势必会影响线其他系统的正常运行。这就必须对api 接口进行有效的版本控制。
# 有哪些控制接口多版本的方式?
-
相同URL,用不同的版本参数区分
api.pdai.tech/user?version=v1
表示 v1版本的接口, 保持原有接口不动api.pdai.tech/user?version=v2
表示 v2版本的接口,更新新的接口
-
区分不同的接口域名,不同的版本有不同的子域名, 路由到不同的实例:
v1.api.pdai.tech/user
表示 v1版本的接口, 保持原有接口不动, 路由到instance1v2.api.pda