Desarrollar una API efectiva implica mucho más que simplemente escribir código. Se requieren procesos claros para su construcción y documentación. Hoy aprenderás cómo estructurar y crear una API con Express en Node.js, definir sus puntos de entrada y generar automáticamente su documentación visual usando Swagger y OpenAPI.
¿Cómo crear una API básica con Express y Node.js?
Express es un marco de trabajo sencillo y potente en Node.js que facilita la construcción de APIs de manera rápida y eficiente. Para comenzar, sigue estos pasos esenciales:
Define la constante express e instancia un objeto para ejecutar tu servidor:
Puedes arrancar tu servidor usando un script personalizado incluidos en los scripts de package.json, para reflejar automáticamente cambios en tu código:
"scripts":{"dev":"node --watch index.js"}
Esto aprovecha una funcionalidad nativa y reciente de Node.js, por lo que no necesitas instalar herramientas adicionales como Nodemon.
¿Cómo documentar y visualizar tu API con Swagger y OpenAPI?
Utilizar Swagger para documentar tu API permite visualizar puntos de entrada, parámetros necesarios y respuestas esperadas de una forma clara en un navegador web:
Instala y configura Swagger UI y YAML previamente:
Accede a la documentación visual desde tu navegador ingresando a localhost:3000/docs. Esta herramienta te permite visualizar claramente cómo interactuar con tu API:
Probar directamente endpoints desde la documentación visual.
Ver respuestas y códigos de estado HTTP claramente organizados.
Facilitar la interacción y desarrollo colaborativo al proporcionar documentación organizada y fácilmente accesible.
¿Qué herramientas adicionales usamos para ver JSON fácilmente en el navegador?
Durante el desarrollo y prueba de APIs puedes usar plugins útiles para tu navegador:
JSON Viewer Pro (un plugin para Chrome), que permite visualizar y manipular fácilmente respuestas en formato JSON.
Este complemento ayuda a probar e interactuar con tu API de un modo claro y organizado, ofreciendo opciones como exportación y análisis fácil de respuestas.
¡Cuéntanos en los comentarios si ya has construido una API con estas herramientas y comparte cómo ha sido tu experiencia!
Yo antes tambien pensaba que node --watch era una buena alternativa a nodemon. Sin embargo, despues de desarrollar con ese comando me di cuenta que no es tan amigable como uno piensa al principio. Principalmente porque node --watch no te deja ver logs, cada que recarga, borra todos los logs dejando la terminal limpia.
Y no hay manera de configurarlo, siempre va a limpiar la terminal. Por esa razón yo prefiero seguir usando nodemon.
Hasta este punto del curso, quise experimentar si teniendo el archivo openapi.yaml bien definido (a modo de ejemplo), se podría tomar como punto de partida para generar el código, ya sea en expressjs, o en python con fastapi, para que realmente tenga sentido este enfoque API First.
Ciertamente existen herramientas como openapi-generator-cli que hacen la tarea, pero para un proyecto sencillo te generan archivos/carpetas de código que resulta innecesario (animense!!! jejeje).
Pareciera que lo más acertado es subir el archivo a una IA (ChatGPT, Claude u otra) y pedirle el código en el lenguaje deseado (y por supuesto, luego verificar que lo entregado corresponde a lo solicitud realizada).
puedes hacerlo generando con ai el openyaml y después generas el código!
todo con ai
En este punto, entiendo que están suponiendo que nadie hace la Especificación de Requerimientos antes de crar una app, no?
Es que, al menos yo, siempre inicio con un Documento de Especificación de Requerimientos que, a mi parecer es más completa que lo que hacen con este yaml. Esto es porque, una Especificación de requerimientos se listan los flujos de usuarios, los casos de uso, diagramas entidad relacion, etc.
En mi caso, sin hacer los diagramas o un bosquejo de ellos, no puedo diseñar.
Algunas personas si la hacen, sin embargo a veces en las empresas no es comun tener todo lo que dices antes de empezar a la fase de desarrollo, esto debido a que mientras alguien hace la documentacion alguien debe estar haciendo algo (programando o asi)]
Estoy de acuerdo contigo, aunque lo que mencionas no es muy difícil de hacer y lo que habla el profe es algo muy sencillo como para incluír tanta info, pero personalmente no me gusta ni siquiera crear el esquema de carpetas sin tener claro los requerimientos, diseño y demás.
🧩 Crear y Documentar una API con Express + Swagger
🚀 1. INICIO RÁPIDO CON EXPRESS
🛠️ Configuración básica
const express = require('express');
const app = express();
const port = 3000;
app.listen(port, () => {
console.log(Servidor funcionando en puerto ${port});
🔍 Recomendado: JSON Viewer Pro (plugin para Chrome)
🌈 Visualiza respuestas JSON con formato amigable
📤 Exporta y analiza datos fácilmente
🔄 Mejora la interacción con tu API
Me gusta que de un pequeño repaso implícito de como usar node.
Cada vez mas convencido de que programar con IA es aplicar a rajatabla lo dicho por Jaime Guzman para la constitución Chilena.
( comentario para que se animen a comentar mas)
jeje, me encantan las referencias políticas mezcladas con tecnología, en especial si viene de un ciudadano del país más libre y con mejor nivel de vida de latam.
Jorge Guzman fue lastimosamente influenciado por filósofos y académicos autoritaristas, pero en economía la tenía clara, el capitalismo era la única y mejor elección moral, a pesar de sostener una contradicción (puesto que capitalismo significa libertad económica y él no era precisamente un defensor de la libertad).
La IA le quita la libertad creativa al programador en la medida que la use para cosas coplejas, para definir una API básica(super básica en éste caso), me parece bien, aunque obviamente si estás aprendiendo, nada que ver
Esto es lo que hace FastApi automaticamente
npm install --save-dev nodemon
Lo equivalente con .net seria
dotnet new webapi -n MiWebApi -f net8.0 --no-https
cd MiWebApi
dotnet run
Apartir de la version 9 y ahora la 10(2025) si ya cambio, pero para la prueba creo que te lo deja bastante sencillo.
¡Un tutorial práctico y directo al grano! La magia ✨ de conectar tu código de Express con Swagger UI para generar documentación visual e interactiva es algo que todo desarrollador debería experimentar. Facilita las pruebas y la colaboración enormemente.
¡No más excusas para no documentar tu API desde el día uno! 📄✅
const express = require('express');
const app = express();
const port = 3000;
app.listen(port, () => {
console.log(Servidor funcionando en puerto ${port});