Generación Swagger/OpenAPI para Java: mejores bibliotecas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Generación Swagger/OpenAPI para Java: guía completa de herramientas



En el desarrollo moderno de Java, la creación de documentación de API de calidad se ha convertido en una parte integral del proceso. La especificación OpenAPI (anteriormente conocida como Swagger) proporciona un formato estandarizado para describir APIs RESTful. En este artículo, revisaremos las principales herramientas para generar documentación Swagger/OpenAPI en proyectos Java, sus características y ejemplos de uso.



¿Qué son Swagger y OpenAPI?

Swagger es un conjunto de herramientas para diseñar, crear y documentar APIs REST. OpenAPI es una especificación que define el estándar de descripción de APIs. Swagger es la implementación más popular de esta especificación.



Bibliotecas principales para Java

Consideremos tres herramientas clave:

  • SpringDoc OpenAPI — una biblioteca moderna para Spring Boot
  • Swagger Core — la biblioteca base de los creadores de Swagger
  • OpenAPI Generator — una herramienta para generar código y documentación


1. SpringDoc OpenAPI

SpringDoc es la opción más popular para proyectos en Spring Boot. Se integra automáticamente con su aplicación y genera documentación basada en anotaciones y tipos de datos.



Instalación y configuración

Agregue la dependencia en pom.xml:

<dependency>    <groupId>org.springdoc</groupId>    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>    <version>2.6.0</version></dependency>


Ejemplo de uso

Cree un controlador simple con documentación:

@RestController@RequestMapping("/api/users")@Tag(name = "Usuarios", description = "Gestión de usuarios")public class UserController {

@GetMapping("/{id}") @Operation(summary = "Obtener usuario por ID") public ResponseEntity<User> getUser( @Parameter(description = "ID del usuario") @PathVariable Long id) { // implementación return ResponseEntity.ok(new User(id, "Iván")); }

@PostMapping @Operation(summary = "Crear un nuevo usuario") public ResponseEntity<User> createUser( @RequestBody @Valid CreateUserRequest request) { // implementación return ResponseEntity.status(201).body(new User(1L, request.getName())); }}


Después de iniciar la aplicación, la documentación estará disponible en http://localhost:8080/swagger-ui.html.



2. Swagger Core

La biblioteca Swagger Core proporciona un enfoque de más bajo nivel para crear la especificación OpenAPI. Es adecuada para proyectos donde se requiere un control total sobre la generación.



Ejemplo de creación manual de especificación

import io.swagger.v3.oas.models.*;import io.swagger.v3.oas.models.info.*;

OpenAPI openAPI = new OpenAPI() .info(new Info() .title("Pet Store API") .description("API para gestionar mascotas") .version("1.0.0") .contact(new Contact() .name("Desarrollador") .email("dev@example.com"))) .addServersItem(new Server() .url("https://api.example.com/v1") .description("Servidor de producción"));

// Agregar rutas y componentesPaths paths = new Paths();paths.addPathItem("/pets", new PathItem() .get(new Operation() .operationId("listPets") .summary("Obtener lista de mascotas")));openAPI.setPaths(paths);


3. OpenAPI Generator

OpenAPI Generator es una herramienta que puede generar tanto documentación como código de cliente/servidor basado en la especificación OpenAPI.



Uso en Maven

Agregue el plugin en pom.

Recommendations