避免从 swagger api 中的默认基本错误控制器

我在我的弹簧靴项目中使用了swagger2。它运行良好,但我需要从api中排除。目前,我正在使用正则表达式使用以下代码。它正在工作,但有什么完美的方法来做到这一点。basic-error-controller

法典:

@Bean
public Docket demoApi() {
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.regex('(?!/error.*).*'))
            .build()
}

答案 1

在谷歌中搜索后,我从GitHub的一个问题中得到了解决方案,[问题]如何排除基本错误控制器添加到swagger描述中?可以使用谓词.not()来完成。

使用谓词.not() 后,代码如下所示。

@Bean
public Docket demoApi() {
    return new Docket(DocumentationType.SWAGGER_2)//<3>
            .select()//<4>
            .apis(RequestHandlerSelectors.any())//<5>
            .paths(Predicates.not(PathSelectors.regex("/error.*")))//<6>, regex must be in double quotes.
            .build()
}

答案 2

很多时间过去了,但是如果有人遇到同样的问题,你可以通过为RestController提供选择器来做到这一点:

new Docket(SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
                .paths(PathSelectors.any())
                .build();

请记住,您的控制器带有@RestController


推荐