Introducción: REST API en JavaScript — rápido y sencillo
El desarrollo web moderno es impensable sin API. REST (Representational State Transfer) es el estilo arquitectónico más popular para crear servicios web. Si quieres crear rápidamente un backend para tu aplicación o aprender los fundamentos del desarrollo del lado del servidor, Node.js y Express son la elección ideal.
En este artículo escribiremos en 30 minutos una REST API completa en JavaScript. Aprenderás cómo configurar el servidor, organizar las rutas (routing), implementar operaciones CRUD (Create, Read, Update, Delete) y probar la API con Postman. Sin teoría innecesaria — solo práctica. ¡Vamos allá!
1. Preparación del entorno e instalación de dependencias
Antes de escribir código, asegúrate de que Node.js (versión 14 o superior) esté instalado en tu ordenador. Puedes verificarlo con el comando:
node -vnpm -vCrea una nueva carpeta para el proyecto e inicializa package.json:
mkdir my-rest-apicd my-rest-apinpm init -yAhora instalaremos Express — un framework minimalista y flexible para Node.js. También instalaremos body-parser para procesar solicitudes JSON (en versiones modernas de Express viene integrado, pero para mayor claridad lo añadiremos explícitamente):
npm install express body-parserLa estructura del proyecto será simple:
app.js— archivo principal del servidorroutes/— carpeta con las rutasdata/— carpeta con datos de prueba (simulación de base de datos)
2. Creación del servidor básico con Express
Crea el archivo app.js y escribe el siguiente código:
const express = require('express');const bodyParser = require('body-parser');const app = express();const PORT = 3000;
// Middleware para procesar JSONapp.use(bodyParser.json());
// Ruta de prueba simpleapp.get('/', (req, res) => { res.send('¡REST API funcionando!');});
// Iniciar el servidorapp.listen(PORT, () => { console.log(`Servidor iniciado en http://localhost:${PORT}`);});Inicia el servidor con el comando node app.js y abre en el navegador http://localhost:3000. Deberías ver el mensaje "¡REST API funcionando!". Felicidades, ¡acabas de crear tu primer servidor web en Node.js!
Ten en cuenta: body-parser convierte los datos entrantes al formato JSON, lo cual es necesario para las solicitudes POST y PUT.
3. Organización del routing y operaciones CRUD
Ahora agreguemos datos reales. Crea la carpeta data y dentro el archivo items.js con un array de prueba:
const items = [ { id: 1, name: 'Aprender Node.js', completed: false }, { id: 2, name: 'Escribir API', completed: true }, { id: 3, name: 'Publicar artículo', completed: false }];
module.exports = items;Crea la carpeta routes y el archivo items.js dentro de ella. Aquí describiremos todas las rutas para trabajar con tareas (to-do list):
const express = require('express');const router = express.Router();let items = require('../data/items');
// GET /api/items — obtener todos los elementosrouter.get('/', (req, res) => { res.json(items);});
// GET /api/items/:id — obtener un elemento por IDrouter.get('/:id', (req, res) => { const id = parseInt(req.params.id); const item = items.find(i => i.id === id); if (!item) return res.status(404).json({ message: 'Elemento no encontrado' }); res.json(item);});
// POST /api/items — crear un nuevo elementorouter.post('/', (req, res) => { const newItem = { id: items.length + 1, name: req.body.name, completed: req.body.completed || false }; items.push(newItem); res.status(201).json(newItem);});
// PUT /api/items/:id — actualizar un elementorouter.put('/:i