我正在运行一个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”或未指定配置文件。
这是SwaggerUI的Docket
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*
路径?
答案 0 :(得分:1)
spring.cloud.config.server.prefix
文件中的bootstrap.properties
参数为我解决了这个问题。