Creación y Gestión de Endpoints en FastAPI para CRUD de Clientes
Clase 10 de 23 • Curso de FastAPI
Resumen
Crear y gestionar endpoints es fundamental para un CRUD completo en FastAPI. Aquí se explora cómo implementar la funcionalidad de detalle, borrado y actualización de clientes en una API. A lo largo de este proceso, se observa cómo manejar la consulta, validación y actualización de datos en la base de datos de manera robusta.
¿Cómo obtener el detalle de un cliente?
Para obtener el detalle de un cliente, es esencial recibir el customer_id
y utilizar la sesión de la base de datos. Aquí se plantea una estructura básica:
- Declaración de Ruta: Usamos
app.get("/customer/{customer_id}")
para definir la URL, en la que{customer_id}
permite identificar el cliente específico. - Consulta en la Base de Datos: La sesión de la base de datos ejecuta
get
con el modelo y elcustomer_id
. - Manejo de Errores: Si el cliente no existe, se lanza una excepción
HTTPException
con un código404 Not Found
y un mensaje personalizado, comoCustomer does not exist
, asegurando claridad en la respuesta JSON.
Esta estructura asegura que el cliente pueda consultarse de manera efectiva y que, en caso de no hallarse, el usuario reciba un mensaje adecuado.
¿Cómo borrar un cliente en FastAPI?
Para implementar el endpoint de borrado, se reutiliza en gran medida el código de consulta:
- Ruta de Borrado: Cambiamos el método a
delete
para el endpoint"/customer/{customer_id}"
, respetando la estructura previa. - Eliminación de Cliente: Una vez localizado el cliente, se usa
session.delete()
con el objeto correspondiente. - Confirmación de Eliminación: Finalizamos con
session.commit()
para confirmar el cambio en la base de datos. La respuesta JSON debe incluir un mensaje como{"detail": "Customer deleted successfully"}
para asegurar al usuario que la eliminación se realizó con éxito.
Este proceso garantiza que el cliente se elimine completamente de la base de datos solo si existe.
¿Cómo actualizar un cliente en FastAPI?
Para completar el CRUD, solo falta el endpoint de actualización. Este implica recibir un cuerpo (body
) con los datos actualizados:
- Crear la Ruta y Función: Define un nuevo endpoint
put
opatch
para actualizar. Se recibe elcustomer_id
y el objeto con los nuevos datos, excluyendo el ID. - Validación y Actualización: Como en los otros endpoints, verifica que el cliente exista. Luego, actualiza los campos necesarios en el objeto del cliente.
- Confirmación de Actualización: Usa
session.commit()
para guardar los cambios.
Este endpoint permite modificar los datos del cliente según lo necesite el usuario, proporcionando flexibilidad y manteniendo la integridad de los datos en la base de datos.