带有rest的springmvc-将请求委派给不同版本的rest控制器

时间:2018-08-06 15:09:40

标签: spring rest spring-mvc

我正在设计一个REST控制器层,其概念可能会在将来发生不同的版本控制。

我正在考虑使用版本号如下的单独类。

@RequestMapping("/v1/api")
@RestController
class V1RestController {

}


@RequestMapping("/v2/api")
@RestController
class V2RestController {

}

或者V2RestController可以根据要求扩展V1RestController。这只是一个草案想法。但是我的问题是,是否有任何Spring MVC api可以捕获URL并查找版本“ / v1 / api或/ v2 / api”并将请求委托给正确的控制器。

根据我的研究,最好的方法是使其向后兼容,但是我确信现实是不同的,并且在某些情况下会有不同的实现。

我知道还有其他方法可以为不同的版本设计其余的控制器层,但是现在,我想采用这种方法。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

但是我的问题是,是否有任何Spring MVC api可以捕获URL并查找版本'/ v1 / api或/ v2 / api'并将请求委托给正确的控制器。

DispatcherServlet截获该请求(在“ web.xml”中截取该请求的内容),然后DispatcherServlet查看该请求URL并寻找其“ value”参数(“ @RequestMapping”批注)与该请求匹配的控制器URL(如果找到匹配项):控件在相应的控制器中传输。这样的事情。