¿Qué es OpenAPI / Swagger y por qué lo necesita un desarrollador Java?
\n\nOpenAPI (anteriormente conocido como Swagger) es una especificación para describir, crear, documentar y consumir APIs RESTful. Para el desarrollador Java, las bibliotecas OpenAPI / Swagger son una herramienta indispensable que automatiza el proceso de documentación de APIs y generación de código cliente.
\n\nRazones principales para usar OpenAPI / Swagger en proyectos Java:
\n- \n
- Generación automática de documentación — la biblioteca analiza su código (anotaciones de Spring Boot, JAX-RS) y crea documentación interactiva en formato Swagger UI. \n
- Estandarización — formato único de descripción de API, comprensible tanto para personas como para máquinas. \n
- Generación de código cliente — se puede generar un cliente Java para cualquier API descrita en OpenAPI. \n
- Pruebas — Swagger UI permite realizar solicitudes a la API directamente desde el navegador. \n
- Integración con CI/CD — se puede verificar la conformidad de la API con la especificación en la etapa de compilación. \n
En este artículo, veremos las dos bibliotecas Java principales: springdoc-openapi (para Spring Boot) y Swagger Core (para JAX-RS y otros frameworks).
\n\nInstalación de la biblioteca OpenAPI / Swagger para Java
\n\nLa instalación depende del framework utilizado. Consideremos las dos opciones principales.
\n\nOpción 1: Spring Boot (springdoc-openapi)
\nAgregue la dependencia a su pom.xml (Maven):
<dependency>\n <groupId>org.springdoc</groupId>\n <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>\n <version>2.6.0</version>\n</dependency>\n\nPara Gradle (build.gradle):
\nimplementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'\n\nOpción 2: JAX-RS / Jakarta (Swagger Core)
\nMaven:
\n<dependency>\n <groupId>io.swagger.core.v3</groupId>\n <artifactId>swagger-jaxrs2-jakarta</artifactId>\n <version>2.2.22</version>\n</dependency>\n\nGradle:
\nimplementation 'io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.22'\n\nInicio rápido: primer ejemplo con Spring Boot
\n\nDespués de agregar la dependencia springdoc-openapi en un proyecto Spring Boot, Swagger UI está disponible automáticamente en la dirección http://localhost:8080/swagger-ui.html. Creemos un controlador simple:
import io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.web.bind.annotation.*;\n\n@RestController\n@RequestMapping("/api/users")\n@Tag(name = "User Controller", description = "Gestión de usuarios")\npublic class UserController {\n\n @GetMapping("/{id}")\n @Operation(summary = "Obtener usuario por ID")\n public String getUser(@PathVariable Long id) {\n return "User with ID: " + id;\n }\n\n @PostMapping\n @Operation(summary = "Crear nuevo usuario")\n public String createUser(@RequestBody String userName) {\n return "Created user: " + userName;\n }\n}\n\nDespués de iniciar la aplicación, abra http://localhost:8080/swagger-ui.html — verá documentación interactiva con la posibilidad de realizar solicitudes.
Métodos y anotaciones principales de OpenAPI / Swagger para Java
\n\nConsideremos las 10 anotaciones y métodos clave de la biblioteca io.swagger.v3.oas.annotations.
1. @Operation
\nQué hace: Describe un endpoint individual (método de API). Agrega descripción, resumen, etiquetas e identificador de operación.
\nParámetros:
\n- \n
summary— descripción breve \n description— descripción detallada