✨ Introducción:
¿Alguna vez te has preguntado cómo construir una API REST limpia, ordenada y profesional usando Node.js y TypeScript?
En este artículo te guiaré paso a paso en la creación de un proyecto real:
una API de gestión de pedidos de jugos — ideal para aprender arquitectura limpia, buenas prácticas de TypeScript y herramientas modernas.
¡Vamos allá! 🚀
🏗️ 1. ¿Qué tecnologías usaremos?
- Node.js
- Express
- TypeScript
- UUID para generación de identificadores únicos
- (Opcional) Swagger para documentación API
Todo siguiendo principios de arquitectura limpia
📁 2. Estructura del proyecto
Organizaremos nuestro proyecto siguiendo una estructura sencilla pero escalable:
/juice-orders-api
/src
/controllers
- orderController.ts
/models
- Order.ts
/routes
- orderRoutes.ts
/services
- OrderService.ts
app.ts
package.json
tsconfig.json
🔥 3. Paso a paso para construir la API
🔹 Configuración inicial
- Iniciar un proyecto Node.js:
npm init -y
- Instalar dependencias:
npm install express uuid
npm install -D typescript @types/node @types/express @types/uuid ts-node nodemon
- Configurar TypeScript (
tsconfig.json) apuntando a/srccomorootDiry/distcomooutDir.
- Crear los archivos base.
🔹 Modelo de datos (Order.ts)
Definimos un modelo claro para nuestros pedidos:
export interface Order {
id: string;
customerName: string;
product: string;
quantity: number;
status: 'pendiente' | 'preparación' | 'entregado';
createdAt: Date;
updatedAt?: Date;
}
🔹 Lógica de negocio (OrderService.ts)
El servicio maneja:
- Crear pedidos
- Listar pedidos
- Consultar un pedido
- Actualizar estado
- Eliminar pedido
Todo en memoria inicialmente usando un array de tipo Order[].
🔹 Rutas y controladores
Creamos un enrutador Express que conecta cada endpoint con los métodos de OrderService.
Rutas principales:
| Método | Ruta | Acción |
|---|---|---|
| POST | /api/orders | Crear nuevo pedido |
| GET | /api/orders | Listar todos los pedidos |
| GET | /api/orders/:id | Consultar un pedido específico |
| PUT | /api/orders/:id | Actualizar estado del pedido |
| DELETE | /api/orders/:id | Eliminar pedido |
🧹 4. Aplicando Arquitectura Clean
Nuestro flujo respeta capas bien separadas:
[Cliente Frontend o Postman]
↓
[Controller Layer (orderRoutes.ts)]
↓
[Service Layer (OrderService.ts)]
↓
[Entity Layer (Order.ts)]
↓
[Data Layer (Array en memoria, luego BD)]
Cada capa tiene una única responsabilidad, siguiendo principios SOLID.
🚀 5. Mejoras opcionales
- Persistir datos en archivos o bases de datos.
- Validaciones estrictas usando librerías como
class-validator. - Documentar la API con Swagger (OpenAPI 3.0).
- Subir la API a un servidor en la nube (AWS Lightsail, DigitalOcean).
- Crear un cliente web o móvil que consuma la API.
✨ Conclusión
Construir APIs REST profesionales en Node.js + TypeScript no tiene por qué ser complicado.
Siguiendo una estructura limpia, buenas prácticas y apoyándote en herramientas modernas como Copilot, puedes escalar tus habilidades como desarrollador rápidamente.
¿Te animas a construir la tuya?
¡Déjame tus comentarios o dudas! 🚀
