我正在尝试更改 API 文档的基本访问 url。网址是“ http://localhost:8080/swagger-ui.html ”。我想得到类似“ http://localhost:8080/myapi/swagger-ui.html ”的东西。
我使用Springfox 2.8.0 Swagger, Java 8, Spring Boot 2.0 swagger配置为:
@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()
.apis(RequestHandlerSelectors.any())
.paths(Predicates.not(PathSelectors.regex("/error")))
.build()
.useDefaultResponseMessages(false);
}
}
自定义路径提供程序必须提供帮助,但我仍然可以通过使用 url“ http://localhost:8080/swagger-ui.html ”来访问 api 文档。如果我使用 url“ http://localhost:8080/myapi/swagger-ui.html ”,我会收到 404 错误。请看下面的屏幕截图。
原文由 Julia Tyrer 发布,翻译遵循 CC BY-SA 4.0 许可协议
UPD:Springfox被遗弃
Springfox Swagger 一直是一个有点脏的解决方案,有很多不清楚和错误,但到现在(2021 Q4)它已经一年多没有更新了。
最后一根稻草是 Springfox Swagger 3.0 不再适用于 Spring Boot 2.6.x。
因此,如果您正在阅读本文,请考虑改用 https://springdoc.org/ 。
对于那些使用 Springfox Swagger 3.0.0 的人
这是 更改文档基本 url 的工作配置: