我使用的是spring-boot-starter-parent 1.3.3.RELEASE。我无法在Swagger UI中禁用存储库控制器
我已使用此link禁用了其他不需要的端点。
如何从swagger UI禁用存储库控制器?请提供您的意见
如果使用follow,它只返回由我编写的搜索存储库,但我也需要实体端点。这些实体端点将按弹簧默认值返回。
.apis(RequestHandlerSelectors.basePackage("bla.blablah.bla"))
答案 0 :(得分:0)
初始化Docket
课程中的Application
时,您可以轻松过滤包名称,因此只会为给定的基础包创建您的API:
@Bean
public Docket swaggerSpringMvcPlugin(){
return new Docket( DocumentationType.SWAGGER_2 )//
.select().apis( RequestHandlerSelectors.basePackage( "com.blabla.bla" ) )//
.build();
}
另一种解决方案:
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(Predicates.not(RequestHandlerSelectors.basePackage("org.springframework.boot")))
.build();
答案 1 :(得分:0)
我通过创建自己的Predicate
并将其添加到Docket
配置来解决了同样的问题。您可以从RequestHandler对象获取组名(存储库控制器)。
我的代码:
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(GroupNameFilter())
.build();
}
private Predicate<RequestHandler> GroupNameFilter(){
return new Predicate<RequestHandler>() {
@Override
public boolean apply(RequestHandler input) {
return !input.groupName().equals("repository-controller");
}
};
}