Cómo crear una API REST con Node.js y Express paso a paso

Una API REST permite que distintas aplicaciones intercambien datos mediante solicitudes HTTP. Una página web, una aplicación móvil y otro servicio pueden comunicarse con el mismo backend si conocen sus rutas, los datos que reciben y las respuestas que deben esperar.

Índice de Contenido 💻
  1. Antes de escribir código
  2. El servidor mínimo
  3. Crear una colección temporal
  4. Recibir datos con POST
  5. Errores y diseño de rutas
  6. Qué falta para producción
  7. Conclusión
  8. Fuentes

Antes de escribir código

Necesitas Node.js instalado y una carpeta vacía para el proyecto. Crea el proyecto con npm init -y e instala Express con npm install express. La documentación de Express es la referencia principal para ampliar esta guía.

El servidor mínimo

const express = require('express');
const app = express();
const port = 3000;
app.use(express.json());
app.get('/api/saludo', (req, res) => {
  res.json({ mensaje: 'Hola desde la API' });
});
app.listen(port, () => {
  console.log('Servidor activo en http://localhost:' + port);
});

El middleware express.json() permite interpretar cuerpos JSON. La ruta GET /api/saludo devuelve una respuesta que puedes probar desde el navegador o con curl.

Crear una colección temporal

const tareas = [
  { id: 1, titulo: 'Leer la documentación', completada: false },
  { id: 2, titulo: 'Probar la ruta GET', completada: true }
];
app.get('/api/tareas', (req, res) => {
  res.json(tareas);
});

Esta colección vive en memoria y se pierde al reiniciar el servidor. Sirve para comprender el flujo, pero un proyecto real necesita una base de datos, validación y autenticación.

Recibir datos con POST

app.post('/api/tareas', (req, res) => {
  const { titulo } = req.body;
  if (!titulo || titulo.trim() === '') {
    return res.status(400).json({ error: 'El título es obligatorio' });
  }
  const nuevaTarea = { id: tareas.length + 1, titulo: titulo.trim(), completada: false };
  tareas.push(nuevaTarea);
  res.status(201).json(nuevaTarea);
});

La validación básica evita guardar una tarea vacía. El código de estado 201 comunica que se creó un recurso. En una aplicación grande conviene validar también el tamaño y el tipo de cada campo.

Errores y diseño de rutas

Usa nombres coherentes, como /api/tareas, y reserva los verbos HTTP para expresar la operación: GET para leer, POST para crear, PUT o PATCH para modificar y DELETE para eliminar. Devuelve errores con un código apropiado y no envíes contraseñas ni claves privadas en las respuestas.

Qué falta para producción

  • Persistencia con una base de datos.
  • Autenticación y autorización.
  • Validación completa de entradas.
  • Variables de entorno.
  • Registro de errores y pruebas automatizadas.
  • HTTPS y límites contra abuso.

Conclusión

Una API útil no se define por tener muchas rutas, sino por ser predecible, segura y fácil de mantener. Empieza con pocos recursos, documenta cada endpoint y prueba también los casos de error.

Fuentes

Si quieres conocer otros artículos parecidos a Cómo crear una API REST con Node.js y Express paso a paso puedes visitar la categoría Desarrollo web.

También puede gustarte:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir