Chuck's Academy

Express JS

Creación de APIs REST con Express

Las APIs REST (Representational State Transfer) son un estándar ampliamente utilizado para construir servicios web que permiten la interacción entre sistemas. En este capítulo, aprenderemos a crear una API REST en Express, siguiendo las mejores prácticas y cumpliendo con los principios RESTful. Veremos cómo manejar solicitudes HTTP, cómo estructurar las rutas, y cómo gestionar las respuestas en formato JSON.

¿Qué es una API REST?

Una API RESTful es una interfaz que sigue los principios de REST, lo que significa que es:

  • Stateless (sin estado): Cada solicitud del cliente al servidor debe contener toda la información necesaria, sin depender de un estado guardado en el servidor.
  • Basada en recursos: Los recursos (datos) se identifican por URL, y las operaciones sobre esos recursos utilizan métodos HTTP (GET, POST, PUT, DELETE).
  • Escalable: Las APIs RESTful están diseñadas para ser escalables y fáciles de mantener.

Creando una API REST Básica en Express

Para crear una API REST en Express, necesitamos definir rutas que correspondan a las operaciones CRUD (Crear, Leer, Actualizar, Eliminar). Estas operaciones se corresponden con los métodos HTTP:

  • GET: Recuperar datos (lectura)
  • POST: Enviar datos (creación)
  • PUT: Actualizar datos
  • DELETE: Eliminar datos

A continuación, construiremos una API REST para gestionar un recurso simple, como "usuarios".

Definiendo Rutas REST

Comencemos creando las rutas básicas para manejar operaciones CRUD en nuestro recurso "usuarios".

javascript
"En este código definimos las operaciones CRUD para el recurso usuarios. Usamos get para obtener todos los usuarios o uno específico por su ID, post para crear un nuevo usuario, put para actualizar un usuario existente, y delete para eliminar un usuario por su ID. La aplicación escucha en el puerto tres mil."

Gestión de Errores en la API

Es importante manejar adecuadamente los errores en una API REST para asegurarnos de que el cliente reciba respuestas claras y precisas cuando algo falla. Por ejemplo, si intentamos obtener un usuario que no existe, deberíamos devolver un código de estado 404 Not Found.

Ya hemos implementado algunas respuestas con errores básicos en las rutas anteriores, como 404 para usuarios no encontrados. Sin embargo, podemos mejorar esto creando un middleware de manejo de errores más robusto:

javascript
"Este middleware captura cualquier error no manejado que ocurra en la aplicación y responde con un código de estado quinientos, indicando que algo salió mal."

Versionado de la API

A medida que las APIs evolucionan, puede ser necesario mantener varias versiones de la misma API. El versionado de APIs nos permite realizar cambios sin romper las integraciones existentes. Una forma común de implementar el versionado es a través de la URL:

javascript
"En este ejemplo, implementamos dos versiones de la ruta users, una versión uno y una versión dos, permitiendo realizar cambios sin afectar a las versiones anteriores de la API."

Buenas Prácticas para el Diseño de APIs REST

  1. Utilizar códigos de estado HTTP correctamente: Asegúrate de devolver los códigos de estado correctos, como 200 OK para solicitudes exitosas, 201 Created para recursos creados, 400 Bad Request para solicitudes mal formadas, y 404 Not Found para recursos inexistentes.
  2. Usar JSON para las respuestas: JSON es el formato de datos más comúnmente utilizado en las APIs REST. Asegúrate de que todas las respuestas de tu API estén en formato JSON.
  3. Hacer las URLs legibles: Las URLs de la API deben ser claras y representar el recurso que están manipulando. Por ejemplo, /users/123 es más claro que /getUser?id=123.
  4. Mantener la API sin estado: No guardes el estado de la solicitud en el servidor. Cada solicitud debe contener toda la información necesaria para procesarla, como tokens de autenticación y datos de la solicitud.

Documentación de la API

Documentar la API es esencial para que otros desarrolladores puedan entender y usarla correctamente. Herramientas como Swagger o Postman son excelentes opciones para generar y mantener la documentación de la API.

Uso de Swagger para Documentación

Podemos integrar Swagger en nuestra aplicación Express para documentar las rutas automáticamente.

bash

Luego, configuramos Swagger:

javascript
"Aquí configuramos Swagger usando swagger-jsdoc y swagger-ui-express para generar y servir documentación interactiva de la API. La documentación está disponible en la ruta slash api-docks."

Conclusión

En este capítulo, hemos visto cómo crear una API REST en Express, siguiendo los principios RESTful y manejando las operaciones CRUD para un recurso básico. También hemos cubierto cómo manejar errores y cómo versionar y documentar nuestras APIs.


Pregúntame lo que sea