我们在SpringBoot中已经开发了一些REST API。
现在,我们想在所有/v1/
的前面添加一些文本(例如@RequestMapping
的API版本)。
除了将/v1/
附加到每个@RequestMapping
示例:当前请求映射/employess
和/cars/1/driver
需要像这样/v1/employess
和/v1/cars/1/driver
答案 0 :(得分:0)
您至少可以通过2种方式来实现。
选项1:如下扩展AbstractAnnotationConfigDispatcherServletInitializer:
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected String[] getServletMappings() {
return new String[] { "/v1/*" };
}
}
选项2:在您希望版本如下的控制器上,在类级别上添加请求映射
@RestController
@RequestMapping("/v1")
public class Controller {
}
我会选择选项1。
答案 1 :(得分:0)
您可以在classpath 'com.android.tools.build:gradle:3.2.1'
文件中使用此类属性:
application.properties
或者您可以拥有基本的控制器类,并将其扩展为所有控制器类
server.servlet.contextPath=/v1
并将@RestController
@RequestMapping(value = "${rest.api.version}")
public class MyAbstractController {
}
存储在您的rest.api.version
文件中。
答案 2 :(得分:0)
如果要为每个请求附加“ / v1”,则可以通过在类级别使用@RequestMapping注释来完成,这样,所有传入呼叫(其中包含“ / v1”)都将落入您的控制器
@RestController
@RequestMapping("/v1")
public class YourController {
}