Dominar Express.js es abrir la puerta a backends modernos, rápidos y escalables. ¡Haz clic aquí!
El desarrollo de aplicaciones modernas exige contar con APIs que sean rápidas, seguras y fáciles de integrar. Una de las formas más comunes de estructurarlas es a través de un estilo RESTful, que permite comunicar clientes (apps móviles, frontends en React/Vue, etc.) con servidores de manera clara y escalable.
En este artículo aprenderás cómo crear una API RESTful para un gestor de tareas (To-Do App) utilizando Node.js y Express.js.
¿Qué es Express.js?
Express.js es un framework minimalista para Node.js que facilita la creación de aplicaciones web y APIs. Su simplicidad y flexibilidad lo han convertido en una de las herramientas más populares para el desarrollo backend en JavaScript.
Con Express podemos:
- Manejar rutas y peticiones HTTP fácilmente.
- Integrar middlewares para procesar datos.
- Crear APIs RESTful en pocos pasos.
Estructura básica del proyecto
- Crea una carpeta para el proyecto:
mkdir gestor-tareas-api
cd gestor-tareas-api
- Inicializa el proyecto con Node.js:
npm init -y
- Instala Express:
npm install express
Construyendo la API RESTful
1. Configuración inicial
Crea un archivo index.js
:
const express = require('express');
const app = express();
const PORT = 3000;
app.use(express.json()); // Middleware para leer JSON
app.listen(PORT, () => {
console.log(`Servidor corriendo en http://localhost:${PORT}`);
});
2. Rutas para el CRUD de tareas
Simularemos una base de datos en memoria con un arreglo.
let tareas = [
{ id: 1, titulo: "Aprender Node.js", completada: false },
{ id: 2, titulo: "Practicar Express.js", completada: false }
];
// Obtener todas las tareas
app.get('/api/tareas', (req, res) => {
res.json(tareas);
});
// Obtener una tarea por ID
app.get('/api/tareas/:id', (req, res) => {
const tarea = tareas.find(t => t.id === parseInt(req.params.id));
tarea ? res.json(tarea) : res.status(404).json({ mensaje: "Tarea no encontrada" });
});
// Crear nueva tarea
app.post('/api/tareas', (req, res) => {
const nuevaTarea = {
id: tareas.length + 1,
titulo: req.body.titulo,
completada: false
};
tareas.push(nuevaTarea);
res.status(201).json(nuevaTarea);
});
// Actualizar tarea existente
app.put('/api/tareas/:id', (req, res) => {
const tarea = tareas.find(t => t.id === parseInt(req.params.id));
if (!tarea) return res.status(404).json({ mensaje: "Tarea no encontrada" });
tarea.titulo = req.body.titulo || tarea.titulo;
tarea.completada = req.body.completada ?? tarea.completada;
res.json(tarea);
});
// Eliminar tarea
app.delete('/api/tareas/:id', (req, res) => {
tareas = tareas.filter(t => t.id !== parseInt(req.params.id));
res.json({ mensaje: "Tarea eliminada" });
});
Probando la API
Puedes usar Postman, Insomnia o incluso curl
desde la terminal para probar los endpoints:
GET /api/tareas
→ Obtiene todas las tareas.GET /api/tareas/:id
→ Obtiene una tarea específica.POST /api/tareas
→ Crea una nueva tarea (requiere{"titulo": "Mi nueva tarea"}
).PUT /api/tareas/:id
→ Actualiza una tarea existente.DELETE /api/tareas/:id
→ Elimina una tarea.
Conclusión
Con solo unas pocas líneas de código y el poder de Node.js + Express.js, hemos creado una API RESTful básica para gestionar tareas.
Este ejemplo puede servir como punto de partida para proyectos más complejos, integrando bases de datos (MongoDB, PostgreSQL, MySQL), autenticación de usuarios y despliegue en la nube.
Dominar Express.js es abrir la puerta a backends modernos, rápidos y escalables. ¡Haz clic aquí!