Crear API básica con Node

Construye una API HTTP con Node nativo entendiendo rutas, status codes, parseo de JSON y manejo de errores.

Antes de Express conviene dominar el núcleo HTTP de Node.

Eso te obliga a entender request, response, códigos de estado y serialización JSON.

Una API correcta no es solo devolver datos: también comunica errores de forma ?til.

Meta: construir endpoints pequeños y robustos con comportamiento predecible.

  • Método + ruta + estado + body.
  • Ruta identifica recurso.
  • Método define intención (`GET`, `POST`, `PUT`, `DELETE`).
  • Status code comunica resultado.
  • Body JSON debe ser consistente.

Anatomía mínima de una API HTTP

Método + ruta + estado + body.

  • Ruta identifica recurso.
  • Método define intención (`GET`, `POST`, `PUT`, `DELETE`).
  • Status code comunica resultado.
  • Body JSON debe ser consistente.

Servidor con `http.createServer`

Control total, más responsabilidad.

Errores que rompen APIs iniciales

La mayoría son de contrato, no de sintaxis.

  • Responder `200` en errores reales.
  • No establecer `Content-Type`.
  • No validar body antes de procesar.
  • Cambiar forma del JSON sin versión ni aviso.

Cuándo pasar a Express

Cuando necesitas routing y middlewares sin reinventar rueda.

JavaScript
55

Crear API básica con Node

Construye una API HTTP con Node nativo entendiendo rutas, status codes, parseo de JSON y manejo de errores.

Código del tema: http.createServer | req.method | res.writeHead

📘 Teoría

Anatomía mínima de una API HTTP

Método + ruta + estado + body.

  • Ruta identifica recurso.
  • Método define intención (`GET`, `POST`, `PUT`, `DELETE`).
  • Status code comunica resultado.
  • Body JSON debe ser consistente.

Servidor con `http.createServer`

Control total, más responsabilidad.

Endpoint GET básico
Revisar
import http from 'node:http';

const server = http.createServer((req, res) => {
  if (req.method === 'GET' && req.url === '/health') {
    res.writeHead(200, { 'Content-Type': 'application/json' });
    res.end(JSON.stringify({ ok: true }));
    return;
  }

  res.writeHead(404, { 'Content-Type': 'application/json' });
  res.end(JSON.stringify({ error: 'Not found' }));
});

server.listen(3000);

Errores que rompen APIs iniciales

La mayoría son de contrato, no de sintaxis.

  • Responder `200` en errores reales.
  • No establecer `Content-Type`.
  • No validar body antes de procesar.
  • Cambiar forma del JSON sin versión ni aviso.

Cuándo pasar a Express

Cuando necesitas routing y middlewares sin reinventar rueda.

🧪 Aprende probando

Ejemplo Ejemplo guiado: flujo mínimo funcional Construye una versión simple y verifica salidas en consola.
Ejemplo Ejemplo guiado: iterar y registrar estado Patrón útil para depuración incremental.
Ejemplo Demo interactiva: mini laboratorio Interactúa con la UI y observa cambios en preview y consola.

🏁 Retos

Reto Reto 1: transformación controlada Crea una variable `resultado` transformando un valor de entrada y muéstrala en consola.
Reto Reto 2: función reutilizable Encapsula la lógica en una función para reutilizarla.

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .