如何为swagger 2.8.0做友好的基本网址

Jul*_*rer 9 java rest swagger spring-boot springfox

我正在尝试更改 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

自定义路径提供程序必须提供帮助,但我仍然可以通过使用 url“ http://localhost:8080/swagger-ui.html ”访问 api 文档。如果我使用 url " http://localhost:8080/myapi/swagger-ui.html ",我会收到404 错误。看看下面的截图。

在此处输入图片说明

Rom*_*sov 5

对于那些使用 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
Run Code Online (Sandbox Code Playgroud)


Uta*_*dru 0

Swagger 基本访问 url 是根据您的基本应用程序路径构建的。因此,如果您更改基本应用程序路径,您将获得所需的行为。而且您的所有 api 也将更改为该路径。您可以在此处找到如何更改它如何在 Spring Boot 中设置剩余的基本 url?

你所做的只是改变了 swagger 从你的应用程序调用其他 api 的方式,而不是改变他的基本 url。有一些技巧可以在不更改应用程序基本路径的情况下更改 swagger 基本 url(手动移动所有 swagger 资源),但我不建议这样做。