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
16 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.
Texto Leccion 1/12
Estas viendo
Routing: endpoints claros y consistentes
Hablar por WhatsAppContactar por WhatsApp