Tutorial

Paso a paso para crear una API REST con Node.js y Express

David Zambrano
9/24/2025
20 minutos
21 vistas
Node.js

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 o express-validator.
  • Autenticación y seguridad usando jsonwebtoken o passport.
  • 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.