Spring boot 将Swagger配置为忽略弹簧引导执行器端点
这里是Spring Boot RESTful web服务和Swagger 2。我有以下@Configuration类设置来为我的服务配置Swagger:Spring boot 将Swagger配置为忽略弹簧引导执行器端点,spring-boot,swagger-2.0,spring-boot-actuator,Spring Boot,Swagger 2.0,Spring Boot Actuator,这里是Spring Boot RESTful web服务和Swagger 2。我有以下@Configuration类设置来为我的服务配置Swagger: @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select()
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
我开始服务,然后去http://localhost:8080/v2/api-我看到SpringBoot自动添加了大约40个端点,我不想让Swagger记录这些端点。像/trace端点、和/health、/env和/beans等等。这些都是Spring Boot Actuator创建的东西,但我不想包含在我的公共API文档中
是否有办法将Swagger配置为不记录这些框架级终结点?使用any将通过Swagger提供整个API的文档。使用PathSelectors.ant限制端点。
差不多
.pathsPathSelectors.ant/finance/**将仅在/finance/下显示端点,使用任何选项都将使整个API的文档通过Swagger可用。使用PathSelectors.ant限制端点。
差不多
.pathsPathSelectors.ant/finance/**将仅显示/finance下的端点/
将公开项目的所有端点
在上述答案的基础上,您可以通过在RequestHandlerSelectors.basePackage方法中提供基本包名称来添加使用下面的代码来限制API的公开
将公开项目的所有端点
在上述答案的基础上,您可以通过在RequestHandlerSelectors.basePackage方法中提供基本包名称来添加使用下面的代码来限制API的公开
RequestHandlerSelectors.any()
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.assingment.scalableweb"))
.paths(PathSelectors.any())
.build()
.apiInfo(metaData())
.tags(new Tag("DifferenceController", "Operations related to the Json Data"));
}