如何为Springfox 2.8.0 Swagger设置友好的基础访问URL
修改Springfox Swagger 2.8.0的基础访问路径
我来帮你搞定这个Swagger访问路径修改的问题~针对你用的Spring Boot 2.0 + Springfox 2.8.0技术栈,要把Swagger UI的访问地址从http://localhost:8080/swagger-ui.html改成http://localhost:8080/myapi/swagger-ui.html,可以按下面的步骤来配置:
1. 自定义Swagger的路径前缀
你已经用到了RelativePathProvider,可以接着完善这个配置,让Swagger生成的文档路径都带上/myapi前缀:
@Configuration @EnableSwagger2 public class SwaggerConfiguration { @Bean public Docket api(ServletContext servletContext) { return new Docket(DocumentationType.SWAGGER_2) // 自定义路径提供者,指定基础路径 .pathProvider(new RelativePathProvider(servletContext) { @Override public String getApplicationBasePath() { return "/myapi"; } }) .select() // 这里替换成你自己的Controller包路径 .apis(RequestHandlerSelectors.basePackage("com.your.project.controller")) .paths(PathSelectors.any()) .build(); } }
2. 配置Spring Boot的全局上下文路径
光改Swagger的配置还不够,得让整个应用的请求都带上/myapi前缀,这样Swagger UI的访问路径才会生效。你可以在配置文件里设置:
如果用application.properties:
server.servlet.context-path=/myapi
如果用application.yml:
server: servlet: context-path: /myapi
最后验证一下
重启你的Spring Boot应用后,就可以通过http://localhost:8080/myapi/swagger-ui.html访问Swagger UI了,对应的API文档JSON地址是http://localhost:8080/myapi/v2/api-docs。
提醒一下:要是只改Swagger的路径提供者,不设置Spring Boot的上下文路径,可能会出现Swagger文档里的接口路径和实际访问路径不匹配的问题,所以建议两个配置都加上哦~
内容的提问来源于stack exchange,提问作者Julia Tyrer
相关产品推荐
相关产品推荐

