在 Swagger 中隐藏 Feign 客户端端点

Hide Feign client endpoints in Swagger

我正在使用 Springboot 自动配置,目前我所有的 Feign 端点都暴露在 swagger-ui 中。如何禁用此功能?

您可以在 application.properties 中将其设置为:

endpoints.enabled=false
endpoints.health.enabled=true
endpoints.loggers.enabled=true

在你的情况下它会是这样的

endpoints.feign.***=true

但这并不是为了招摇而禁用端点本身。例如,对于 Swagger,您必须使用 @Api#hidden() 明确标记它们。

到目前为止,不包含无关端点的最佳方法是通过 Swagger Docker,例如

@Configuration
@EnableSwagger2
class SwaggerConf {
  @Bean
  Docket allApis() {
    return new Docket(DocumentationType.SWAGGER_2)
      .groupName("all")
      .select().apis(RequestHandlerSelectors.basePackage("com.example.base"))
      .build();
  }
}

对我有用的最简单的解决方案是将 @ApiIgnore 添加到 Feign Client

@ApiIgnore    
@FeignClient()
public interface FeignApi {
}