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*
パスを除外する必要があることを構成サーバーに伝える可能性はありますか?