swagger2 地址前缀

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的地址。

猜你喜欢

转载自blog.csdn.net/yangyangrenren/article/details/88041877