PUT, PATCH y DELETE
Clase 12 de 27 • Curso de Backend con Node.js: API REST con Express.js
Resumen
¿Cómo funcionan los métodos de actualización y eliminación en APIs RESTful?
Los métodos de actualización y eliminación en APIs RESTful son esenciales para mantener la integridad de la información y asegurar la flexibilidad necesaria en nuestras aplicaciones. Utilizar de manera efectiva los métodos PATCH
, PUT
y DELETE
puede marcar la diferencia en la forma en que interactuamos con los datos.
¿Cuáles son las principales diferencias entre PUT
y PATCH
?
Cuando nos encontramos con la necesidad de actualizar datos, disponemos de dos métodos fundamentalmente diferentes: PUT
y PATCH
.
-
PUT
: Este método requiere el envío de todos los atributos del recurso, incluso si solo planeamos modificar uno de ellos. Imagina que tienes un producto con diez características; deberás enviar las diez al realizar la actualización, asegurándote de que cubrimos todos los aspectos del objeto. -
PATCH
: Un método mucho más flexible, permite enviar únicamente los atributos que deseamos modificar. Por ejemplo, si solo deseas cambiar el nombre de un producto, puedes enviar únicamente ese atributo. Esto ahorra tiempo y recursos, haciendo las actualizaciones más eficientes.
¿Cómo implementar un PATCH
en nuestro código?
Implementar un PATCH
es bastante similar a cómo se manejaría un POST
, con la diferencia de que se requiere proporcionar un ID para identificar el recurso a actualizar.
app.patch('/products/:id', (req, res) => {
const { id } = req.params;
const newData = req.body; // Datos a actualizar
// Lógica para actualizar el objeto con los datos proporcionados
res.send(`Producto con ID ${id} ha sido actualizado.`);
});
En este ejemplo, req.params
se utiliza para obtener el ID del producto que se desea modificar, y req.body
contiene los datos que queremos actualizar. Este enfoque asegura que solo los atributos enviados sean los que se actualicen.
¿Cómo se administra la eliminación de un recurso con DELETE
?
El método DELETE
es indispensable cuando queremos eliminar un recurso. La implementación es directa y no requiere un cuerpo de datos, solo el identificador del recurso que queremos eliminar.
app.delete('/products/:id', (req, res) => {
const { id } = req.params;
// Lógica para eliminar el producto con el ID proporcionado
res.send(`Producto con ID ${id} ha sido eliminado.`);
});
Con este enfoque, solo enviamos un identificador para el recurso a eliminar. Esta simplicidad es una de las fuerzas de REST, garantizando que las operaciones sean intuitivas y eficientes.
¿Cómo probar las solicitudes PATCH
y DELETE
?
Para probar las solicitudes PATCH
y DELETE
, herramientas como Insomnia pueden ser de gran ayuda. Al clonar el comportamiento existente, podemos enviar solicitudes de manera efectiva.
-
Probar
PATCH
: Configura una solicitudPATCH
enviando solo los datos necesarios en el cuerpo. Asegúrate de incluir el ID en la ruta. -
Probar
DELETE
: Configura una solicitudDELETE
enviando únicamente el identificador en la ruta; no se requiere un cuerpo.
¿Qué es un CRUD y cómo se relaciona con estos métodos?
Un CRUD (Crear, Leer, Actualizar, Eliminar) representa las cuatro operaciones básicas que podemos realizar con un sistema de gestión de datos. Ahora, comprendiendo cómo utilizar PATCH
, PUT
y DELETE
, puedes implementar completamente un CRUD en tus proyectos:
- Create (Crear): A través de métodos
POST
. - Read (Leer): Mediante métodos
GET
, ya sea para obtener una lista de productos o un producto específico utilizando un ID. - Update (Actualizar): Utilizando
PATCH
para actualizaciones parciales oPUT
para actualizaciones completas. - Delete (Eliminar): Con el método
DELETE
para la eliminación de recursos específicos.
Practicar estos métodos te permitirá crear endpoints robustos para diferentes dominios como categorías, órdenes y usuarios. Nunca dejes de aprender y explorar las posibilidades que REST y sus métodos te ofrecen. ¡Adelante!