Las APIs son el puente que conecta aplicaciones móviles, webs y de escritorio con la lógica del backend, y aprender a diseñarlas con NestJS te permite construir servicios potentes y escalables siguiendo el patrón RESTful. Si vienes del mundo backend y quieres trabajar con TypeScript en un framework moderno, este recorrido te muestra cómo instalar NestJS, levantar tu primer proyecto y entender los archivos clave para empezar a construir una API real.
¿Qué es NestJS y por qué usarlo para construir APIs?
NestJS es un framework de Node.js pensado para crear APIs robustas usando TypeScript desde el inicio. Su gran diferencial frente a otros frameworks es que trae un CLI oficial que te ayuda a escalar y manipular la aplicación sin perder el control del setup.
Entre las ventajas que vas a notar desde el primer minuto están:
- Arquitectura basada en módulos, controladores y servicios.
- Integración por defecto con ESLint y Prettier para mantener buenas prácticas.
- Configuración lista de TypeScript y herramientas de unit testing.
- Patrón RESTful como base natural para diseñar tus endpoints.
¿Qué es una API RESTful? Es un estilo de diseño para APIs que organiza los recursos mediante URLs y verbos HTTP (GET, POST, PUT, DELETE). NestJS te da la estructura para implementar este patrón sin reinventar la rueda.
¿Cómo instalar NestJS y crear tu primer proyecto?
Lo primero es instalar el CLI de forma global. Necesitas tener Node.js instalado, idealmente la versión 20, y luego ejecutar el comando recomendado en la documentación oficial [01:30].
bash
npm i -g @nestjs/cli
Una vez instalado, te paras en la carpeta donde quieras crear tu proyecto y corres:
bash
nest new my-blog-api
El CLI te preguntará qué manejador de paquetes prefieres entre npm, yarn o pnpm. Para evitar problemas de configuración, lo más seguro es elegir npm [02:45]. NestJS genera entonces toda la estructura base con sus archivos de configuración listos para trabajar.
¿Cómo levantar el servidor por primera vez?
Después de entrar a la carpeta del proyecto, ejecuta el comando de arranque:
bash
npm run start
La aplicación queda corriendo en el puerto 3000 de tu localhost. Si abres el navegador en localhost:3000, vas a ver un Hello World que confirma que tu primera API en NestJS está viva [03:50].
¿Cuáles son los archivos clave de un proyecto NestJS?
Al abrir el proyecto en tu editor (en el ejemplo se usa Cursor), encontrarás dos archivos que conviene entender desde el principio.
El primero es main.ts, que funciona como punto de entrada de la aplicación. Ahí se define en qué puerto corre el servidor y se inicializa todo el contexto de NestJS.
El segundo es el AppModule, que es el módulo raíz donde empiezas a encapsular funcionalidades aplicando programación modular. Por defecto trae un controller y un service. Si abres el service y cambias el texto del Hello World por un Hola mundo, vas a ver el efecto en el navegador.
¿Qué hace el AppModule en NestJS? Es el módulo raíz que conecta controladores, servicios y otros módulos. Desde ahí se organiza toda la arquitectura modular de tu API.
¿Cómo activar el modo desarrollo con live reloading?
En lugar de usar npm run start, te conviene correr la variante de desarrollo:
bash
npm run start:dev
Este comando levanta un servidor de desarrollo con live reloading [05:20]. Cada vez que guardas un cambio en cualquier archivo, NestJS detecta la modificación y vuelve a desplegar la aplicación de forma automática. Esto mejora muchísimo la experiencia de desarrollo porque no tienes que reiniciar el servidor manualmente cada vez que pruebas algo nuevo.
¿Qué vas a construir en este curso de NestJS?
El proyecto guía es una API de blogs para desarrolladores que irá creciendo en complejidad clase a clase. Entre las características que vas a implementar están:
- Autenticación con JWT para proteger endpoints.
- Conexión a bases de datos usando un ORM.
- Migraciones para versionar el esquema de datos.
- Validación de datos con una capa de integridad.
- Integración con inteligencia artificial para autogenerar imágenes y resúmenes de los artículos.
El profesor del curso es Nicolás Molina, reconocido como Google Developer Expert y Microsoft Most Valuable Professional, así que vas a recibir buenas prácticas avaladas por la industria.
¿Cómo cambiar el puerto por defecto en NestJS?
Tu aplicación corre en el puerto 3000 porque así viene configurado en main.ts. Si quieres cambiarlo, abre ese archivo y modifica el valor que se le pasa al método listen. Por ejemplo, podrías usar el 4000 o leerlo desde una variable de entorno para tener más flexibilidad entre entornos de desarrollo y producción.
¿Ya probaste cambiar el puerto en tu proyecto? Cuéntame en los comentarios qué configuración usaste y si te animaste a leerlo desde una variable de entorno.