Una vez que el servidor esté en ejecución, accede a la documentación interactiva de Swagger:
URL: http://localhost:4300/api-docs
- Exploración visual de todos los endpoints disponibles
- Esquemas de datos con ejemplos en tiempo real
- Probar peticiones directamente desde el navegador
- Respuestas en vivo con códigos de estado HTTP
Para probar endpoints protegidos:
- Click en el botón "Authorize" (candado verde en la parte superior)
- Ingresa tu API Key o Bearer Token:
- API Key: Ingresa en el campo
X-API-Key - Bearer Token: Ingresa en el campo
BearerAuth
- API Key: Ingresa en el campo
- Click en "Authorize" y luego "Close"
- Ahora puedes ejecutar peticiones autenticadas
API Key:
dev-key-123
Bearer Token:
dev-token-123
Endpoints para gestión CRUD de enlaces cortos (requieren autenticación):
- GET /v1/short-links - Listar y filtrar enlaces
- POST /v1/short-links - Crear nuevo enlace
- GET /v1/short-links/{id} - Obtener enlace por ID
- PATCH /v1/short-links/{id} - Actualizar enlace
Endpoints públicos de redirección (sin autenticación):
- GET /r/{codigo} - Redirección pública
Endpoints de estado del servicio:
- GET / - Landing page
- GET /health - Health check
- Ve a la sección "Short Links"
- Expande POST /v1/short-links
- Click en "Try it out"
- Edita el cuerpo de la petición:
{
"proyecto": "Marketing",
"creado_por": "admin",
"url_destino": "https://example.com/promo",
"etiquetas": ["black-friday", "descuentos"]
}- Click en "Execute"
- Observa la respuesta con el código HTTP 201 y el enlace creado
- Ve a GET /v1/short-links
- Click en "Try it out"
- Completa los parámetros de query:
proyecto: Marketingestado: ACTIVO
- Click en "Execute"
- Revisa el array de enlaces retornados
- Primero crea un enlace y copia su
codigode la respuesta - Ve a GET /r/{codigo}
- Click en "Try it out"
- Ingresa el código en el campo
codigo - Click en "Execute"
- Observarás una redirección HTTP 302 a la URL destino
Puedes obtener la especificación OpenAPI 3.0 en formato JSON:
URL: http://localhost:4300/api-docs.json
# Descargar especificación
curl http://localhost:4300/api-docs.json > openapi.json
# Importar en Postman
# File → Import → Upload Files → openapi.json
# Usar con generadores de código
npx @openapitools/openapi-generator-cli generate -i openapi.json -g typescript-axios -o ./clientLa interfaz de Swagger está personalizada con:
- Título personalizado: API Short Link - SimpleData Corp
- Barra superior oculta: Para una interfaz más limpia
- Favicon corporativo: Logo de SimpleData Corp
La configuración se encuentra en:
Archivo: src/config/swagger.ts
{
openapi: '3.0.0',
info: {
title: 'API Acortador de Enlaces - SimpleData Corp',
version: '1.0.0',
description: 'Descripción detallada...',
contact: { ... },
license: { ... }
},
servers: [
{ url: 'http://localhost:4300/v1', description: 'Desarrollo' },
{ url: 'https://lnk.simpledatacorp.com/v1', description: 'Producción' }
],
components: {
securitySchemes: { ... },
schemas: { ... },
responses: { ... }
},
tags: [ ... ]
}Las anotaciones Swagger se encuentran directamente en los archivos de rutas:
src/routes/shortlink.route.ts- Endpoints de gestiónsrc/routes/redirect.route.ts- Endpoints de redirecciónsrc/routes/index.route.ts- Endpoints de health
/**
* @swagger
* /v1/short-links:
* post:
* summary: Crear un nuevo enlace corto
* tags:
* - Short Links
* security:
* - ApiKeyAuth: []
* requestBody:
* required: true
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/CreateShortLinkDTO'
*/
router.post('/', createShortLink);En producción, Swagger estará disponible en:
URL: https://lnk.simpledatacorp.com/api-docs
- Proteger Swagger con autenticación: Agregar middleware de autenticación
- Deshabilitar en producción: Configurar
NODE_ENVpara ocultar Swagger - CORS restrictivo: Configurar orígenes permitidos
- Verifica que el servidor esté corriendo:
npm run dev - Accede directamente al JSON: http://localhost:4300/api-docs.json
- Revisa los logs del servidor en la terminal
- Verifica que tu API Key esté en el archivo
.env - Usa el botón "Authorize" antes de ejecutar peticiones
- Revisa que el header
X-API-KeyoAuthorizationse incluya
- Verifica que los archivos de rutas tengan anotaciones
@swagger - Recompila el proyecto:
npm run build - Reinicia el servidor:
Ctrl+Cy luegonpm run dev
- OpenAPI Specification 3.0 - Documentación oficial de OpenAPI
- Swagger UI - Herramienta de visualización
- swagger-jsdoc - Librería usada para generar la especificación
- swagger-ui-express - Middleware para servir Swagger UI
- Explora los endpoints desde Swagger UI
- Prueba con datos reales usando el botón "Try it out"
- Exporta la especificación para usar con otras herramientas
- Integra con Postman importando el JSON de OpenAPI
- Genera clientes SDK usando herramientas de generación de código
Autor: Dey Gordillo
Email: dey.gordillo@simpledatacorp.com
Organización: SimpleData Corp
Versión: 1.0.0