我在Spring Boot中开发服务。 现在假设我已经开发了10个没有指定任何版本的API,并在生产时发布代码。
现在两个API需要改变,所以我需要创建这两个API的新版本。
那么我应该如何创建我的代码设计呢?我应该创建一个基本控制器&那么每个新版本都会创建一个扩展主控制器的新控制器?我应该使用inrerfaces吗?或者有更好的方法。
另外,我计划最多只保留最多两个/三个版本的API。另外我们希望不支持旧版本API太久,所以设计也应该支持轻松删除旧版本?
答案 0 :(得分:0)
使用网址版本方法。使用@RequestMapping()注释添加重载方法。在RequestMapping的值中指定版本号。
@Controller
@RequestMapping(value="/controller")
public class SampleController {
@RequestMapping(value = "/sample", method = RequestMethod.GET)
public ResponseEntity<?> getDefaultData() {
}
@RequestMapping(value = "/sample/v1", method = RequestMethod.GET)
public ResponseEntity<?> getData() {
}
@RequestMapping(value = "/sample/v2", method = RequestMethod.GET)
public ResponseEntity<?> findData() {
}
}
每个版本的Web服务都会以以下格式获取不同的URL:
例如: -
http://example.com/controller/sample/v1
http://example.com/controller/sample/v2
http://example.com/controller/sample
依旧......
通过这种方法,您可以获得以下好处: