
Cómo crear una API REST con Node.js y Express paso a paso
Cuando empecé a programar con Node.js, uno de los proyectos que más me ayudó a comprender cómo funciona el backend fue crear una API REST. No necesitas experiencia avanzada, basta con tener Node.js instalado y un editor de texto como VSCode.
En este post te voy a mostrar paso a paso cómo puedes construir tu primera API REST con Node.js y Express.
¿Qué es una API REST?
Una API REST (Representational State Transfer) es una forma de comunicar aplicaciones entre sí a través de HTTP.
En pocas palabras: es un conjunto de endpoints o rutas que responden con datos, generalmente en formato JSON.
Ejemplo típico:
GET /usuarios
→ devuelve una lista de usuarios.POST /usuarios
→ crea un nuevo usuario.PUT /usuarios/:id
→ actualiza un usuario existente.DELETE /usuarios/:id
→ elimina un usuario.
Requisitos previos
Antes de empezar, asegúrate de tener:
- Node.js instalado en tu máquina.
- npm (se instala automáticamente con Node.js).
- Conocimientos básicos de JavaScript.
Puedes comprobarlo con:
node -v
npm -v
Paso 1: Crear un proyecto de Node.js
Crea una carpeta para tu proyecto y dentro inicializa npm:
mkdir api-rest-node
cd api-rest-node
npm init -y
Esto generará un archivo package.json
que contendrá la configuración del proyecto.
Paso 2: Instalar Express
Express es un framework minimalista para Node.js que nos permite crear servidores y APIs fácilmente.
npm install express
Paso 3: Crear el servidor básico
Crea un archivo index.js
con el siguiente contenido:
const express = require('express');
const app = express();
const PORT = 3000;
// Middleware para interpretar JSON
app.use(express.json());
app.get('/', (req, res) => {
res.send('Bienvenido a mi API REST con Node.js y Express');
});
app.listen(PORT, () => {
console.log(`Servidor escuchando en http://localhost:${PORT}`);
});
Ejecuta el servidor con:
node index.js
Paso 4: Crear rutas para la API
Vamos a simular una API para manejar usuarios. Agregamos algunas rutas:
let usuarios = [
{ id: 1, nombre: 'Juan' },
{ id: 2, nombre: 'María' },
{ id: 3, nombre: 'Pedro' }
];
// GET: obtener todos los usuarios
app.get('/usuarios', (req, res) => {
res.json(usuarios);
});
// POST: crear un nuevo usuario
app.post('/usuarios', (req, res) => {
const nuevoUsuario = {
id: usuarios.length + 1,
nombre: req.body.nombre
};
usuarios.push(nuevoUsuario);
res.status(201).json(nuevoUsuario);
});
// PUT: actualizar un usuario existente
app.put('/usuarios/:id', (req, res) => {
const id = parseInt(req.params.id);
const usuario = usuarios.find(u => u.id === id);
if (!usuario) {
return res.status(404).json({ mensaje: 'Usuario no encontrado' });
}
usuario.nombre = req.body.nombre;
res.json(usuario);
});
// DELETE: eliminar un usuario
app.delete('/usuarios/:id', (req, res) => {
const id = parseInt(req.params.id);
usuarios = usuarios.filter(u => u.id !== id);
res.json({ mensaje: 'Usuario eliminado' });
});
Paso 5: Probar la API
Puedes usar herramientas como Postman o Insomnia, pero también puedes probar con curl
en la terminal.
- Obtener todos los usuarios:
curl http://localhost:3000/usuarios
- Crear un usuario nuevo:
curl -X POST http://localhost:3000/usuarios -H "Content-Type: application/json" -d '{"nombre":"Ana"}'
- Actualizar un usuario:
curl -X PUT http://localhost:3000/usuarios/1 -H "Content-Type: application/json" -d '{"nombre":"Juan Actualizado"}'
- Eliminar un usuario:
curl -X DELETE http://localhost:3000/usuarios/2
Paso 6: Mejoras posibles
Lo que hicimos es una versión muy simple, pero puedes mejorarla con:
- Persistencia de datos usando una base de datos (MongoDB, MySQL, PostgreSQL).
- Validación de datos con librerías como
joi
oexpress-validator
. - Autenticación y seguridad usando
jsonwebtoken
opassport
. - Estructura de carpetas para separar rutas, controladores y modelos.
Conclusión
Crear una API REST con Node.js y Express es más sencillo de lo que parece. Con unas pocas líneas de código ya tienes un servidor funcional que responde a peticiones HTTP.
Este tipo de proyecto es ideal si estás aprendiendo backend, ya que te ayudará a entender cómo funcionan las rutas, los métodos HTTP y la gestión de datos.
¿Ya creaste tu primera API con Node.js? 🚀
Cuéntame en los comentarios tu experiencia.