Swagger

Estándares Jan 9, 2026 YAML
swagger openapi api-documentation tools code-generation

Definición

Swagger es el popular ecosistema de herramientas para trabajar con especificaciones OpenAPI. Mientras que “OpenAPI” se refiere a la especificación en sí, “Swagger” se refiere a las herramientas que te ayudan a diseñar, documentar y consumir APIs descritas por especificaciones OpenAPI. El conjunto de herramientas Swagger incluye Swagger UI (documentación interactiva de API), Swagger Editor (creación de especificaciones), Swagger Codegen (generación de SDK) y muchas herramientas contribuidas por la comunidad.

La historia importa para claridad: Swagger comenzó como una especificación y herramientas creadas por SmartBear. En 2015, SmartBear donó la especificación a la Linux Foundation, que la renombró como “OpenAPI Specification.” La marca Swagger permaneció con SmartBear para sus herramientas. Hoy, cuando los desarrolladores dicen “Swagger,” usualmente se refieren a Swagger UI (la interfaz de documentación) o al conjunto de herramientas Swagger en general, no a la especificación en sí.

Las herramientas Swagger son por mucho las más populares para trabajar con especificaciones OpenAPI. Swagger UI alimenta la documentación interactiva de miles de APIs, desde pequeñas startups hasta compañías Fortune 500. Su función “try it out” (pruébalo) permite a los desarrolladores probar endpoints de API directamente en el navegador sin escribir código, reduciendo dramáticamente el tiempo hasta la primera llamada exitosa a la API.

Ejemplo

Swagger UI para APIs Públicas: Stripe, Twilio y cientos de otras compañías usan Swagger UI para su documentación de API pública. Los desarrolladores pueden leer descripciones de endpoints, ver ejemplos de solicitud/respuesta y hacer llamadas API en vivo con sus propias claves API - todo sin salir del navegador.

Swagger Editor en Desarrollo: Los equipos de API usan Swagger Editor para crear especificaciones OpenAPI colaborativamente. Mientras escribes YAML, el editor valida la sintaxis en tiempo real, muestra una vista previa en vivo de la documentación y detecta errores antes de publicar.

Swagger Codegen para SDKs: Cuando Shopify actualiza su API, ejecutan Swagger Codegen para generar automáticamente bibliotecas de cliente en Ruby, Python, JavaScript y PHP. La misma especificación OpenAPI produce SDKs consistentes a través de todos los lenguajes, eliminando codificación manual y reduciendo bugs.

Portales de API Internos: Grandes empresas usan SwaggerHub (la plataforma comercial de SmartBear) para crear catálogos de API internos. Los equipos de ingeniería publican sus especificaciones OpenAPI en SwaggerHub, que automáticamente genera documentación buscable, servidores mock e historiales de versiones.

Pruebas de Contrato: Las compañías integran validación de Swagger en pipelines CI/CD. Cuando el código backend cambia, las pruebas verifican que las respuestas reales de la API siguen coincidiendo con la especificación OpenAPI. Si divergen, la compilación falla, previniendo drift de la especificación.

Analogía

El Ecosistema IKEA: OpenAPI es como el formato universal de descripción de muebles de IKEA (medidas, materiales, requisitos de montaje). Swagger es como las herramientas de IKEA - las instrucciones de montaje con imágenes (Swagger UI), las apps de planificación (Swagger Editor) y el servicio de entrega (Swagger Codegen). Puedes usar las herramientas de IKEA, o herramientas de terceros, pero todas funcionan con el mismo formato de descripción de muebles.

La Plataforma de Video: OpenAPI es como un formato de archivo de video (MP4, WebM). Swagger es como un reproductor de video específico (VLC, Windows Media Player). El formato está estandarizado, pero eliges qué reproductor usar según las características que necesitas - algunos tienen mejor UI, otros tienen capacidades de edición avanzadas.

El Sistema de Recetas: OpenAPI es el formato estandarizado de recetas (lista de ingredientes, cantidades, pasos). Swagger es la app de gestión de recetas - muestra recetas bellamente (Swagger UI), te permite editarlas y validarlas (Swagger Editor), y puede auto-generar listas de compras o planes de comidas (Swagger Codegen). Otras apps pueden leer el mismo formato de receta, pero la app de Swagger es la más popular.

Ejemplo de Código


# Especificación OpenAPI que las herramientas Swagger consumen
openapi: 3.0.0
info:
  title: Pet Store API
  version: 1.0.0
  description: API de muestra para demostrar herramientas Swagger

paths:
  /pets:
    get:
      summary: Listar todas las mascotas
      operationId: listPets
      tags:
        - pets
      parameters:
        - name: limit
          in: query
          description: Número máximo de mascotas a devolver
          schema:
            type: integer
            format: int32
            default: 20
      responses:
        '200':
          description: Un array paginado de mascotas
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Pet'
              example:
                - id: 1
                  name: Fluffy
                  tag: cat
                - id: 2
                  name: Buddy
                  tag: dog

components:
  schemas:
    Pet:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        tag:
          type: string

Usando Swagger UI (integración HTML):


<!DOCTYPE html>
<html>
<head>
  <title>[Documentación de API](https://reference.apios.info/es/terms/api-documentation/)</title>
  <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist/swagger-ui.css" />
</head>
<body>
  <div id="swagger-ui"></div>

  <script src="https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js"></script>
  <script>
    window.onload = function() {
      SwaggerUIBundle({
        url: "/openapi.yaml",
        dom_id: '#swagger-ui',
        presets: [
          SwaggerUIBundle.presets.apis,
          SwaggerUIBundle.SwaggerUIStandalonePreset
        ]
      });
    };
  </script>
</body>
</html>

Usando Swagger Codegen (línea de comandos):


# Generar SDK de cliente Python desde especificación OpenAPI
swagger-codegen generate \
  -i openapi.yaml \
  -l python \
  -o ./python-client

# Generar stubs de servidor Java
swagger-codegen generate \
  -i openapi.yaml \
  -l spring \
  -o ./spring-server

# Generar cliente TypeScript
swagger-codegen generate \
  -i openapi.yaml \
  -l typescript-axios \
  -o ./typescript-client

Diagrama

graph TB
    SPEC[Especificación OpenAPI
YAML/JSON] subgraph "Conjunto de Herramientas Swagger de SmartBear" UI[Swagger UI
Docs Interactivas] EDITOR[Swagger Editor
Creación de Especificaciones] CODEGEN[Swagger Codegen
Generación de SDK] HUB[SwaggerHub
Plataforma de Colaboración] end subgraph "Herramientas de Comunidad" REDOC[Redoc
Docs Alternativas] PRISM[Prism
Servidor Mock] SPECTRAL[Spectral
Linting] POSTMAN[Postman
Pruebas] end SPEC --> UI SPEC --> EDITOR SPEC --> CODEGEN SPEC --> HUB SPEC -.-> REDOC SPEC -.-> PRISM SPEC -.-> SPECTRAL SPEC -.-> POSTMAN EDITOR -->|Crea| SPEC UI -->|Muestra| SPEC CODEGEN -->|Lee| SPEC style SPEC fill:#90EE90 style UI fill:#FFD700 style CODEGEN fill:#87CEEB

Mejores Prácticas

  1. Usar Swagger UI para APIs públicas - Es el formato más reconocido, los desarrolladores saben cómo usarlo
  2. Integrar Swagger Editor en fase de diseño - La validación en tiempo real detecta errores temprano
  3. Automatizar generación de SDK - Ejecutar Swagger Codegen en CI/CD para mantener SDKs sincronizados con especificaciones
  4. Personalizar tema de Swagger UI - Branding con colores y logo de tu compañía para docs profesionales
  5. Habilitar “try it out” selectivamente - Deshabilitarlo para operaciones destructivas (DELETE, POST) en docs de producción
  6. Usar Swagger Inspector para pruebas - Herramienta de SmartBear para validar respuestas API en vivo contra especificaciones
  7. Considerar SwaggerHub para equipos - Colaboración centralizada, control de versiones y publicación para organizaciones más grandes
  8. Mantener herramientas Swagger actualizadas - Las características de OpenAPI 3.1 requieren versiones más nuevas de herramientas Swagger

Errores Comunes

Llamar a OpenAPI “Especificación Swagger”: La especificación es OpenAPI, no Swagger. Esto confunde a recién llegados y hace la documentación más difícil de buscar.

Usar Swagger Codegen obsoleto: Swagger Codegen 2.x no soporta bien OpenAPI 3.x. Usar versión 3.x o considerar OpenAPI Generator (un fork con mejor soporte 3.x).

Olvidar configurar basePath: En Swagger UI, si no configuras servers o basePath, la función “try it out” no funcionará correctamente.

Exponer endpoints sensibles: Habilitar “try it out” en Swagger UI de producción sin restringir operaciones peligrosas. Los usuarios podrían accidentalmente eliminar datos.

No personalizar código generado: Tratar la salida de Swagger Codegen como código final en lugar de un punto de partida. El código generado a menudo necesita refinamiento manual para uso en producción.

Ignorar alternativas a Swagger UI: Swagger UI es popular pero no siempre la mejor opción. Redoc ofrece mejor legibilidad para APIs complejas; Stoplight ofrece mejores herramientas de diseño.

Mezclar Swagger 2.0 y OpenAPI 3.x: Usar anotaciones Swagger antiguas que generan especificaciones 2.0 cuando intentas usar características 3.x. Ser explícito sobre la versión objetivo.

Estándares y RFCs

Standards & RFCs
1)- OpenAPI 3.1.0 Specification
2)- OpenAPI 3.0.3 Specification
3)- Swagger 2.0 Specification (legacy)
4)- JSON [Schema](https://reference.apios.info/es/terms/schema/) (usado por OpenAPI)

Términos Relacionados