Skip to content

Cómo configurar sencillamente un Swagger

Añadir las dependencias necesarias de maven

En un proyecto de Spring Boot (hecho con la versión 2.6.2), modificamos el pom.xml.

  • Bajo las <properties>, añadimos (no es necesario, es por limpieza):
        <springfox-version>3.0.0</springfox-version>
  • Bajo las <dependencies>, añadimos las requeridas:
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${springfox-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

Configuración de Spring

Properties

A pesar de seguir la https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api[documentación oficial], añadir estas dependencias provocaba un fallo, https://stackoverflow.com/questions/70036953/springboot-2-6-0-spring-fox-3-failed-to-start-bean-documentationpluginsboot[que se ha solucionado] especificando una configuración; para ello, en el application.properties, añadimos:

  • spring.mvc.pathmatch.matching-strategy#ant_path_matcher

Entidades

Se necesita el @Bean de configuración, siendo el código base:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
public class SwaggerConfiguration {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

Acceso

Con esto, tenemos la configuración más sencilla. Puede accederse con la url: http://localhost:8080/swagger-ui/