es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo ocultar las APIs/Controladores marcados como @Deprecated al generar Swagger a través de Docket?

Estoy buscando una manera de ocultar las APIs marcadas como @Deprecated para que no sean visibles en la interfaz de Swagger. Una forma es usar hidden = true en la anotación @Operation, pero eso es muy manual y no es fácil volver a activar los endpoints @Deprecated si decido verlos de nuevo.

¿Hay alguna otra manera de lograr esto a través de la configuración de Docket?


@Operation(
tags = "Deprecated",
deprecated = true
)
@GetMapping("/api/customer/order")
public String viewOrders() {
//
}


@Bean
public Docket orderApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("order")
.apiInfo(metadata())
.select()
.paths(PathSelectors.ant("/order/**"))
.build();
}

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes lograrlo a través de la configuración de Docket. Puedes usar el método .ignoredParameterTypes() para ignorar las APIs obsoletas. Por ejemplo:

    @Bean
    public Docket orderApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("order")
                .apiInfo(metadata())
                .select()
                .paths(PathSelectors.ant("/order/**"))
                .build()
                .ignoredParameterTypes(Deprecated.class);
    }
    

Comments are closed.