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」が見つからないか、プロファイルが指定されていないと不平を言います。

これは、DocketSwaggerUI の 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