是否有办法在swagger文件(json / doc / yamlConfig)中禁用/隐藏端点?

问题描述 投票:0回答:1

我为包含内部和外部方法的API生成了Swagger。内部方法不应由外部客户端使用,因此以后也不会在我的API网关中公开。

我只想向我的网关公开一个控制器/动作的白名单,我想像这样更新swagger json / yaml配置:

"paths": {
    "/api/BankAccountApi/GetBankAccount": {
           "post": {
                 "tags": [
                     "internal"
                  ],
                  "hidden": true //this what I'm looking for

是否有一种方法可以从招摇说明中删除/隐藏/禁用某些方法?我们可以使用任何注释来将方法标记为私有或公共或任何其他方式?

谢谢!

json yaml swagger swagger-ui openapi
1个回答
0
投票

在Docket配置中,您可以使用.paths(path -> !INTERNAL_APIS.contains(path))从swagger文档中删除特定的apis>

@Configuration
@EnableSwagger2
public class SwaggerConfig {
   private static final ImmutableSet<String> INTERNAL_APIS = ImmutableSet.of("/cancellations");
   private final TypeResolver typeResolver;


   public SwaggerConfig(final TypeResolver typeResolver) {
      this.typeResolver = typeResolver;
   }

  @Bean
  public Docket docketApi() {
      return new Docket(DocumentationType.SWAGGER_2)
              .useDefaultResponseMessages(false)
              .apiInfo(apiInfo())
              .select()
    .apis(RequestHandlerSelectors.basePackage("com.rmurugaian.service.pricing.server"))
              .paths(path -> !INTERNAL_APIS.contains(path))
    .build()
    .additionalModels(typeResolver.resolve(DummyDTO.class));

}

© www.soinside.com 2019 - 2024. All rights reserved.