Pranav C Balan Pranav C Balan - 6 months ago 138
Java Question

Avoiding default basic-error-controller from swagger api

I'm using swagger2 in my spring boot project. It's working well, but I need to exclude the

basic-error-controller
from the api. Currently I'm using the following code using regex. It's working but is there any perfect way to do this.

CODE :

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

Answer

After searching in google I got solution from one issue in github, [question] How to exclude the basic-error-controller from being added to the swagger description? . It can be done using Predicates.not().

Code looks like as follows after using Predicates.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>
            .build()
}