1

我正在运行 SpringBoot 配置服务器(带有 Vault 后端)并尝试将 Springfox SwaggerUI 添加到它。但是由于我不想spring.cloud.config.server.prefix为我的配置服务器添加前缀 (),因此配置服务器和 SwaggerUI 之间的路径映射会导致冲突。

我所有的客户都使用以下模式询问配置服务器:

{config-server-host}/{application-name}/{profile}

例如:

{config-server-host}/test-app-one/dev
{config-server-host}/test-app-two/prod

但我的 SwaggerUI 路径映射到:

{config-server-host}/swagger-ui.html

结果,配置服务器抱怨找不到应用程序“swagger-ui”或未指定配置文件。

这是我Docket为 SwaggerUI 配置的 bean:

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .paths(not(regex("/error.*")))
                .paths(any())
                .build()
                .pathMapping("/");
    }

    private ApiInfo apiInfo() {
        Contact contact = new Contact({secret}, {secret}, {secret});
        return new ApiInfoBuilder().title({secret})
                                   .description({secret})
                                   .version({secret})
                                   .contact({secret})
                                   .build();
    }
}

这一切都会导致以下问题:我不能为配置服务器添加前缀,我希望 SwaggerUI url 映射到标准。有没有可能告诉配置服务器它应该排除/swagger*路径?

4

1 回答 1

1

文件中的spring.cloud.config.server.prefix参数bootstrap.properties为我解决了这个问题。

于 2020-10-03T09:57:05.407 回答