我为包含内部和外部方法的API生成了Swagger。内部方法不应由外部客户端使用,因此以后也不会在我的API网关中公开。
我只想向我的网关公开一个控制器/动作的白名单,我想像这样更新swagger json / yaml配置:
"paths": {
"/api/BankAccountApi/GetBankAccount": {
"post": {
"tags": [
"internal"
],
"hidden": true //this what I'm looking for
是否有一种方法可以从招摇说明中删除/隐藏/禁用某些方法?我们可以使用任何注释来将方法标记为私有或公共或任何其他方式?
谢谢!
在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));
}