RestController的地址跳转形式
@RestController
public class FooController {
@RequestMapping("/foo")
void handleFoo(HttpServletResponse response) throws IOException {
response.sendRedirect("some-url");
}
}
不能是下面这样的,否则就是直接返回redirect:/swagger-ui.html
这样的字符串给界面显示了。
@Controller //note - this is a spring-boot controller, not @RestController
public class HomeController {
@RequestMapping ("/swagger")
public String home() {
return "redirect:/swagger-ui.html";
}
}
最好的方法,还是在application.properties文件中添加一个配置
server.context-path=/api/your_program_name
这样,所有的controller层,都默认都会有此地址前缀。
备注,这是spring boot项目。
另外,在swagger config中
@Autowired
private ServletContext servletContext;
new Docket(DocumentationType.SWAGGER_2)
.host("www.mydomain.com")
.pathProvider(new RelativePathProvider(servletContext) {
@Override
public String getApplicationBasePath() {
return "/myapi";
}
});
这种方法,将会对swagger界面中的请求,在请求前面加上myapi的地址。