La especificación OpenAPI, anteriormente conocida como la especificación Swagger, es el estándar mundial para definir interfaces RESTful. Permite a los desarrolladores diseñar una interfaz API independiente de la tecnología que forma la base de su desarrollo y consumo de API.
Se deben importar las librerías en el pom xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
Dependencias:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
En la clase principal agregamos la anotación @EnableSwagger2 y el siguiente codigo :
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.etec.audrox.agencia")).build();
}
NOTA: "com.etec.audrox.agencia" es el paquete donde escaneará los servicios rest
El código completo de ejemplo quedaría parecido a este:
package com.etec.audrox.agencia;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@EnableSwagger2
public class AgenciaServiceApplication {
public static void main(String[] args) {
SpringApplication.run(AgenciaServiceApplication.class, args);
}
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.etec.audrox.agencia")).build();
}
}
La url de ejecuación tendra la siguiente estructura: http://XX.XX.XX.XX:YYYY/swagger-ui.html, ejemplo ip 127.0.0.1, puerto 8080:
http://127.0.0.1:8080/swagger-ui.html
http://localhost:8080/swagger-ui.html