如何为 swagger 2.8.0 做友好的基本 url

新手上路,请多包涵

我正在尝试更改 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 许可协议

阅读 1.3k
1 个回答

UPD:Springfox被遗弃

Springfox Swagger 一直是一个有点脏的解决方案,有很多不清楚和错误,但到现在(2021 Q4)它已经一年多没有更新了。

最后一根稻草是 Springfox Swagger 3.0 不再适用于 Spring Boot 2.6.x。

因此,如果您正在阅读本文,请考虑改用 https://springdoc.org/

这是一个非常简单的转换,他们在记录它方面做得很好。 https://springdoc.org/#migrating-from-springfox

对于那些使用 Springfox Swagger 3.0.0 的人

这是 更改文档基本 url 的工作配置:

 springfox:
  documentation:
    swaggerUi:
      baseUrl: /documentation
    openApi:
      v3:
        path: /documentation/v3/api-docs
    swagger:
      v2:
        path: /documentation/v2/api-docs

原文由 RomanMitasov 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题