Spring boot 将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()

这里是Spring Boot RESTful web服务和Swagger 2。我有以下@Configuration类设置来为我的服务配置Swagger:

@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")); 
}