我正在设计一个REST控制器层,其概念可能会在将来发生不同的版本控制。
我正在考虑使用版本号如下的单独类。
@RequestMapping("/v1/api")
@RestController
class V1RestController {
}
@RequestMapping("/v2/api")
@RestController
class V2RestController {
}
或者V2RestController可以根据要求扩展V1RestController。这只是一个草案想法。但是我的问题是,是否有任何Spring MVC api可以捕获URL并查找版本“ / v1 / api或/ v2 / api”并将请求委托给正确的控制器。
根据我的研究,最好的方法是使其向后兼容,但是我确信现实是不同的,并且在某些情况下会有不同的实现。
我知道还有其他方法可以为不同的版本设计其余的控制器层,但是现在,我想采用这种方法。
任何帮助将不胜感激。
答案 0 :(得分:0)
但是我的问题是,是否有任何Spring MVC api可以捕获URL并查找版本'/ v1 / api或/ v2 / api'并将请求委托给正确的控制器。
DispatcherServlet截获该请求(在“ web.xml”中截取该请求的内容),然后DispatcherServlet查看该请求URL并寻找其“ value”参数(“ @RequestMapping”批注)与该请求匹配的控制器URL(如果找到匹配项):控件在相应的控制器中传输。这样的事情。