Introducción: REST API en media hora es real
REST API es la base de la interacción web moderna. Ya seas un desarrollador frontend que quiere entender el backend, o un principiante que desea crear rápidamente su primer servidor, esta guía es para ti. Analizaremos cómo escribir un REST API completo en JavaScript (Node.js) literalmente en 30 minutos.
Usamos un stack mínimo: Node.js y Express.js — el framework más popular para crear APIs. Sin código superfluo, solo práctica. Al final del artículo tendrás un servidor funcional con operaciones CRUD (crear, leer, actualizar, eliminar).
Paso 1: Preparación e instalación de dependencias
Para empezar, asegúrate de tener instalado Node.js (versión 14 o superior). Puedes descargarlo desde el sitio oficial. Verifica la instalación:
node -vnpm -vCrea una carpeta para el proyecto y accede a ella:
mkdir my-rest-apicd my-rest-apiInicializa el proyecto e instala Express:
npm init -ynpm install expressPara mayor comodidad, instalaremos nodemon — reinicia automáticamente el servidor cuando hay cambios en el código:
npm install --save-dev nodemonAhora abre package.json y reemplaza la sección "scripts" por:
"scripts": { "start": "node index.js", "dev": "nodemon index.js"}¡Excelente! Todo está listo para escribir el código.
Paso 2: Escribimos el servidor básico y el primer endpoint
Crea el archivo index.js en la raíz del proyecto. Empezamos importando Express y configurando el puerto:
const express = require('express');const app = express();const PORT = 3000;
// Middleware para parsear JSONapp.use(express.json());
// Endpoint de prueba simpleapp.get('/', (req, res) => { res.send('¡Mi REST API está funcionando!');});
// Iniciamos el servidorapp.listen(PORT, () => { console.log(`Servidor iniciado en http://localhost:${PORT}`);});Inicia el servidor con el comando:
npm run devVe en el navegador a la dirección http://localhost:3000 — deberías ver el mensaje "¡Mi REST API está funcionando!".
Añadimos una simulación de base de datos
Para simplificar, almacenaremos los datos en memoria (un array). En un proyecto real conectarías MongoDB o PostgreSQL, pero para aprender esto es suficiente.
// Simulación de base de datoslet users = [ { id: 1, name: 'Alexey', email: 'alex@example.com' }, { id: 2, name: 'Maria', email: 'maria@example.com' }];let nextId = 3;Paso 3: Implementación de operaciones CRUD
Ahora crearemos endpoints completos para trabajar con usuarios. Implementaremos los cuatro métodos HTTP principales: GET, POST, PUT, DELETE.
GET — obtener todos los usuarios
// Obtener todos los usuariosapp.get('/api/users', (req, res) => { res.json(users);});
// Obtener un usuario por IDapp.get('/api/users/:id', (req, res) => { const id = parseInt(req.params.id); const user = users.find(u => u.id === id); if (!user) { return res.status(404).json({ message: 'Usuario no encontrado' }); } res.json(user);});POST — crear un nuevo usuario
// Crear usuarioapp.post('/api/users', (req, res) => { const { name, email } = req.body; // Validación simple if (!name || !email) { return res.status(400).json({ message: 'El nombre y el email son obligatorios' }); } const newUser = { id: nextId++, name, email }; users.push(newUser); res.status(201).json(newUser);});PUT — actualizar un usuario
// Actualizar usuarioapp.put('/api/users/:id', (req, res) => { const id = parseInt(req.params.id); const { name, email } = req.body;
```