Creación y Gestión de Endpoints en FastAPI para CRUD de Clientes

Clase 10 de 23Curso 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 el customer_id.
  • Manejo de Errores: Si el cliente no existe, se lanza una excepción HTTPException con un código 404 Not Found y un mensaje personalizado, como Customer 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 o patch para actualizar. Se recibe el customer_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.