在 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 {
}
我正在使用 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 {
}