Resumen

¿Cómo manejar rutas y versiones en una API?

El correcto manejo de rutas y versiones es esencial en una API para mantener la compatibilidad con clientes diversos y permitir evoluciones. Cuando desarrollamos una API, es crucial considerar cómo puede crecer y evolucionar sin causar problemas a aplicaciones que dependen de ella, como móviles o IoT.

¿Qué es un endpoint con rutas versionadas?

Las rutas versionadas permiten que la API evolucione sin afectar a los clientes actuales. Por ejemplo, podríamos tener API/v1/users para la versión 1 de nuestro endpoint de usuarios. Si decidimos actualizar la lógica para la gestión de usuarios, podemos crear una nueva ruta API/v2/users sin interferir con la versión anterior.

Ejemplo de estructura de rutas:

const express = require('express');
const router = express.Router();

// Definir una ruta global para la versión
app.use('/api/v1', router);

// Endpoints para v1
router.get('/products', (req, res) => {
  res.send('Lista de productos para la versión 1');
});

// Configurar segunda versión
const routerV2 = express.Router();
app.use('/api/v2', routerV2);

routerV2.get('/products', (req, res) => {
  res.send('Lista de productos para la versión 2');
});

¿Cómo implementar el método POST en una API?

El método POST permite la creación de nuevas entidades. A diferencia de GET, que podemos probar en un navegador, POST requiere un software para emular el envío, como Insomnia o Postman.

¿Cómo hacer una petición POST?

  1. Crear una petición con Insomnia o Postman.
  2. Establecer el método como POST.
  3. Definir el endpoint que coincida con el de nuestra API.
  4. Enviar datos en formato JSON, por ejemplo, para crear un producto:
{
  "name": "Nuevo Producto",
  "price": 100,
  "image": "http://imagen.com/img.jpg"
}

Configuración en Insomnia:

  • Duplicar una request preexistente.
  • Cambiar el método a POST.
  • Enviar los datos en cuerpo JSON.

¿Cómo configurar el servidor para recibir JSON?

Es necesario un middleware para procesar las solicitudes en JSON. Express.js lo facilita con express.json():

app.use(express.json()); // Middleware global para parsear JSON

// Ejemplo de endpoint para recibir un POST
router.post('/products', (req, res) => {
  const product = req.body;
  res.json({
    message: 'Creación exitosa',
    data: product
  });
});

Consejos prácticos para trabajar con APIs

  • Mantenibilidad: Planifica desde el inicio para soportar nuevas versiones de endpoints.
  • Pruebas: Utiliza herramientas especializadas como Postman para verificar que los métodos funcionen correctamente.
  • Claridad: Documenta bien cada ruta y su versión para evitar confusiones.

Es fundamental contar con una buena base cuando se trata de diseño de APIs, no solo para evitar errores, sino para permitir su escalabilidad y adaptabilidad en el tiempo. A medida que continúes aprendiendo y construyendo, te enfrentarás a numerosas situaciones que desafiarán tu creatividad y habilidades de resolución de problemas. ¡Sigue adelante y no dejes de experimentar!