Actualización de Clientes: Implementación de Endpoint PATCH
Clase 11 de 23 • Curso de FastAPI
Resumen
Aprender a manejar un CRUD completo en una aplicación es esencial para gestionar clientes (customers) de manera eficiente en una base de datos. Este ejemplo ilustra cómo se puede crear un endpoint de actualización, permitiendo cambiar datos específicos sin reemplazar toda la información de un cliente.
¿Cómo se implementa el endpoint de actualización de clientes?
Para actualizar un cliente, se utiliza el método PATCH
. Este método permite enviar datos al endpoint y actualizar solo los campos indicados en el request sin afectar los demás. En este proceso:
- Se requiere el
customer ID
para identificar al cliente. - En el body del request, se incluye
customer data
, es decir, la información que se desea actualizar.
¿Qué modelo de datos se utiliza en la actualización?
En el modelo de datos, se define un tipo específico llamado customer update
. Este modelo es diferente del de creación (create
) porque:
- La actualización no solicita ciertos campos como la contraseña, que sí se pide al crear un cliente.
- Se separan los modelos para tener flexibilidad en los datos que se reciben en diferentes operaciones.
¿Cómo se convierte la información en un formato adecuado para la base de datos?
Para actualizar solo los campos indicados:
- Se convierte
customer data
en un diccionario mediantecustomer_data.model_dump
. - Se configura el parámetro
exclude_unset
para incluir únicamente los campos presentes en el request.
¿Cómo se guarda la actualización en la base de datos?
Una vez listo el diccionario con la información a actualizar:
- Se agrega la query a la sesión con
session.add
. - Se ejecuta el cambio en la base de datos con
session.commit
. - Se utiliza
session.refresh
para actualizar en memoria los valores del cliente, asegurando que los datos retornados sean los actualizados.
¿Cómo manejar la respuesta HTTP en la actualización?
Al realizar cambios en la base de datos, es importante ajustar el código de respuesta. Para este caso, se cambia a HTTP 201 Created
, en lugar de HTTP 200 OK
, usando un decorador con el nuevo status code.
¿Qué pasos adicionales ayudan a optimizar el código para equipos de desarrollo?
Para equipos de desarrollo, es importante modularizar el código en varios archivos para mejorar la organización y facilitar la colaboración. En futuras fases, este tipo de estructura será implementada para manejar un crecimiento efectivo de la aplicación.