La documentación es uno de los elementos más importantes en una API REST.
👉 El estándar actual para documentar APIs REST es la OpenAPI Specification (OAS), y la herramienta más popular para visualizarla e interactuar con ella es Swagger UI.
OpenAPI es una especificación estandarizada para describir APIs REST. Permite definir:
👉 Se escribe en YAML o JSON, y sirve como contrato entre el servidor y los clientes.
Ejemplo simple en YAML
openapi: 3.0.0
info:
title: API de Productos
version: 1.0.0
paths:
/productos:
get:
summary: Obtener todos los productos
responses:
'200':
description: Lista de productos
Swagger es un ecosistema de herramientas que trabajan con OpenAPI.
👉 Hoy en día, Swagger UI es lo que los desarrolladores ven más seguido: una página web con la lista de endpoints donde pueden probar la API en tiempo real.
Supongamos que tenemos una API con este endpoint:
GET /productos
En Swagger UI se vería así:
[
{ "id": 1, "nombre": "Notebook", "precio": 1500 },
{ "id": 2, "nombre": "Tablet", "precio": 900 }
]
👉 El desarrollador puede presionar Try it out, ejecutar la petición y ver la respuesta directamente.
openapi: 3.0.0
info:
title: API de Usuarios
version: 1.0.0
paths:
/usuarios:
get:
summary: Listar usuarios
responses:
'200':
description: Lista de usuarios
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Usuario'
post:
summary: Crear un nuevo usuario
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Usuario'
responses:
'201':
description: Usuario creado
/usuarios/{id}:
get:
summary: Obtener usuario por ID
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Usuario encontrado
components:
schemas:
Usuario:
type: object
properties:
id:
type: integer
nombre:
type: string
email:
type: string
👉 Esto genera automáticamente una documentación completa con ejemplos de peticiones y respuestas.
FastAPI (Python)
http://localhost:8000/docs
(Swagger) y http://localhost:8000/redoc
(ReDoc).Spring Boot (Java)
http://localhost:8080/swagger-ui.html
.Express (Node.js)
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Producto(BaseModel):
id: int
nombre: str
precio: float
@app.get("/productos", response_model=list[Producto])
def listar_productos():
return [
{"id": 1, "nombre": "Notebook", "precio": 1500},
{"id": 2, "nombre": "Tablet", "precio": 900}
]
👉 Al ejecutar la app, FastAPI genera automáticamente documentación en Swagger UI (/docs
) y en ReDoc (/redoc
).
/api/v1/docs
, /api/v2/docs
.OpenAPI es el estándar actual para describir APIs REST. Swagger es el ecosistema de herramientas más usado para generar documentación interactiva.
Una API documentada con Swagger permite que cualquier desarrollador la entienda y la pruebe fácilmente.
La documentación automática convierte a la API en algo profesional, transparente y usable.
👉 En resumen: si tu API no tiene documentación automática, está incompleta.