Saltar al contenido
Node.js y APIs con Express

Routing: endpoints claros y consistentes

Routing: endpoints claros y consistentes El diseño de tus rutas es la primera impresión que tu API da a quien la consume. Unas rutas REST consistentes hacen que un desarrollador pueda adivinar el siguiente endpoint sin leer la documentación. La idea central de REST es modelar recursos (sustantivos en plural) y usar los métodos HTTP como verbos sobre ellos. El patrón de recursos Método y rutaAcciónStatus de éxito GET /coursesListar todos200 GET /courses/:idObtener uno200 POST /coursesCrear201 PAT
Tiempo de estudio
25 Min

Routing: endpoints claros y consistentes


El diseño de tus rutas es la primera impresión que tu API da a quien la consume. Unas rutas REST consistentes hacen que un desarrollador pueda adivinar el siguiente endpoint sin leer la documentación. La idea central de REST es modelar recursos (sustantivos en plural) y usar los métodos HTTP como verbos sobre ellos.



El patrón de recursos











Método y rutaAcciónStatus de éxito
GET /coursesListar todos200
GET /courses/:idObtener uno200
POST /coursesCrear201
PATCH /courses/:idActualizar parcial200
DELETE /courses/:idEliminar204


Organiza con express.Router


// src/routes/courses.js
import { Router } from 'express';
const router = Router();

router.get('/', listCourses);
router.get('/:id', getCourse);
router.post('/', createCourse);
router.patch('/:id', updateCourse);
router.delete('/:id', deleteCourse);

export default router;

// src/app.js
app.use('/courses', coursesRouter);


Consejo

  • Usa plural: /courses, no /course.
  • Las relaciones se anidan: GET /courses/:id/lessons.
  • No metas verbos en la URL: di DELETE /courses/5, no POST /deleteCourse/5.
  • Los filtros van en query string: GET /courses?level=beginner.


Elige bien el status code


El código de estado es información, no decoración. 201 Created indica que se creó un recurso; 204 No Content es perfecto para un DELETE sin cuerpo de respuesta; 404 cuando el recurso no existe; 400 cuando el cliente envió datos inválidos.



¿Qué ruta sigue mejor las convenciones REST para borrar el curso con id 5?

El verbo va en el método HTTP (DELETE), no en la URL. El recurso se identifica por su id en la ruta. Las otras opciones mezclan verbos en la URL o usan métodos incorrectos.


Ejercicio práctico


Objetivo: diseñar un conjunto de rutas REST coherente.



  1. Diseña los endpoints CRUD para dos recursos: tasks y comments (los comentarios pertenecen a una tarea).

  2. Anida la relación correctamente: GET /tasks/:id/comments.

  3. Para cada endpoint, escribe el status code de éxito y el de error más probable.

  4. Implementa el router de tasks con express.Router aunque los handlers solo devuelvan res.json({ ok: true }).


Entregable: una tabla con tus rutas, métodos y status codes, más el archivo del router.



Para recordar

  • Recursos en plural, verbo en el método HTTP, filtros en la query.
  • El status code comunica el resultado: 201 al crear, 204 al borrar, 404 si no existe.
  • express.Router mantiene cada recurso en su propio archivo.

Aplicación práctica en un caso real


Aplicar Routing: endpoints claros y consistentes dentro del contexto de Node.js y APIs con Express con criterio práctico, evitando quedarse en una definición aislada. Para que esta lección sea útil, imagina un escenario concreto: tienes que usar este tema para mejorar un proceso, tomar una decisión, crear un entregable o explicar una recomendación a otra persona. La pregunta no es solo “qué significa”, sino “qué haría diferente después de entenderlo”.


Un buen uso empieza por delimitar el problema. Define qué resultado quieres lograr, qué información tienes disponible, qué restricciones existen y cómo sabrás si la decisión fue correcta. Esta forma de pensar evita respuestas genéricas y convierte el aprendizaje en una herramienta de trabajo.


Marco de decisión


Antes de avanzar, revisa tres niveles: primero, el objetivo operativo; segundo, los recursos disponibles; tercero, el riesgo de equivocarte. En Node.js y APIs con Express, muchas decisiones fallan porque se copia una táctica sin entender el contexto. El marco correcto te obliga a adaptar, no solo repetir.


  • Objetivo: qué resultado medible o visible quieres conseguir.
  • Contexto: quién usará esto, con qué nivel de experiencia y bajo qué restricciones.
  • Acción: cuál es el siguiente paso mínimo que puedes ejecutar hoy.
  • Señal: qué evidencia vas a observar para decidir si funcionó.

Ejemplo guiado


Supón que debes implementar esta idea en una pequeña empresa o proyecto personal. En vez de intentar una versión perfecta, prepara una versión mínima: una plantilla, una prueba, una lista de control, una automatización simple, una página, un mensaje o una medición inicial. Luego pide feedback o compara el resultado contra una métrica.


Si el resultado mejora, documenta el proceso. Si no mejora, identifica si falló la hipótesis, la ejecución o la medición. Esta distinción es clave: muchas personas abandonan una buena idea por una mala primera ejecución, o escalan una mala idea porque miraron la métrica equivocada.


Errores frecuentes


  • Confundir actividad con avance: hacer muchas tareas sin saber qué resultado persiguen.
  • Copiar ejemplos sin adaptarlos al cliente, audiencia, equipo o nivel técnico real.
  • No dejar evidencia: si no registras decisiones y resultados, no aprendes del proceso.
  • Querer automatizar o escalar antes de validar que el enfoque básico funciona.

Ejercicio práctico


  1. Escribe el objetivo de esta lección en una frase aplicada a tu caso.
  2. Define un entregable pequeño que puedas crear en menos de una hora.
  3. Lista tres criterios para evaluar si ese entregable está bien hecho.
  4. Ejecuta una versión inicial y anota qué cambiarías en una segunda iteración.

Checklist de salida


  • Puedo explicar el concepto con mis propias palabras.
  • Tengo un ejemplo aplicado, no solo una definición.
  • Sé qué error debo evitar primero.
  • Tengo una acción concreta para practicar esta semana.
Texto Leccion 1/12
Estas viendo
Routing: endpoints claros y consistentes