Я использую сервер конфигурации 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
bean-компонента для SwaggerUI:
@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();
}
}
Все это приводит к следующему вопросу:У меня не может быть префикса для сервера конфигурации, и я хочу, чтобы URL-адрес SwaggerUI соответствовал стандарту.Есть ли возможность сообщить серверу конфигурации, что он должен исключить пути /swagger*
?