POST: método para crear
Clase 11 de 27 • Curso de Backend con Node.js: API REST con Express.js
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?
- Crear una petición con Insomnia o Postman.
- Establecer el método como POST.
- Definir el endpoint que coincida con el de nuestra API.
- 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!