达到的版本控制效果如下:
1.api版本定义在url中,采用/api/项目名/pro/v4/接口名 的形式。
2.api版本号通过注解进行定义。
3.如果请求中不指定api版本号则返回最新版本。
4.版本的自动适配,如果请求的api版本不存在,则返回低于请求版本的最新版本。
方式一
这篇博客提供了版本控制的几种方式,有参考性
从API版本控制说起,实现SpringBoot 一种版本控制的方式(上篇)_panaimin的博客-CSDN博客
方式二?SpringBoot API增加version版本号
SpringBoot API增加version版本号_一只懒惰的程序猿的博客-CSDN博客_springboot接口版本号
方式三
简单地使用继承:
版本1Controller.java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("v1/")
public class Version1Controller {
@ResponseBody
@RequestMapping("foo")
public String foo() {
return "Foo 1";
}
@ResponseBody
@RequestMapping("bar")
public String bar() {
return "bar 1";
}
}
版本2Controller.java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping({ "v2/", "latest/" })
public class Version2Controller extends Version1Controller {
@Override
@ResponseBody
@RequestMapping("bar")
public String bar() {
return "bar 2";
}
}
在这里,您将映射以下URL:
v1/foo ?-返回“ Foo 1”v2/foo ?-返回“ Foo 1”-从版本1继承v1/bar ?-返回“第1条”v2/bar ?-返回“条2”-从版本1覆盖行为。latest/foo ?- 如同?v2/foo latest/bar ?- 如同?v2/bar
|