¿Cómo implementar métodos PUT y DELETE en FastAPI?
FastAPI es una poderosa herramienta para desarrollar APIs eficientes y escalables. Hasta ahora, hemos aprendido a trabajar con los métodos GET y POST. Sin embargo, para completar un CRUD (Create, Read, Update, Delete), necesitamos integrarnos con los métodos PUT y DELETE, los cuales se encargan de la modificación y eliminación de recursos respectivamente. A continuación, te explico cómo implementar estos métodos usando FastAPI.
¿Cómo modificar un recurso con el método PUT?
Para modificar una película en nuestra API, utilizamos el método PUT. Este método nos permite actualizar los valores de un recurso existente, identificado por su ID único. El proceso implica los siguientes pasos:
Definición de la ruta: Debemos declarar una nueva ruta mediante app.put, especificando que requerimos un ID como parámetro de ruta.
@app.put("/movies/{movie_id}", tags=["movies"])defupdate_movie(movie_id:int):# Lógica de actualizaciónpass
Función de actualización: Creamos una función update_movie que toma como argumentos el ID de la película y los datos a actualizar.
Filtrado y modificación: Iteramos sobre la lista de películas buscando la que coincida con el ID proporcionado. Si la encontramos, actualizamos sus campos como título, descripción general, año, puntuación y categoría.
for movie in movies:if movie["id"]== movie_id: movie["title"]= new_data.title
movie["overview"]= new_data.overview
# Resto de los campos a actualizarbreakreturn{"msg":"Película actualizada","movies": movies}
Verificación: Probamos la actualización en la documentación automática de FastAPI, asegurándonos de que el recurso sea modificado correctamente al enviar un ID válido junto con los datos nuevos.
¿Cómo eliminar un recurso con el método DELETE?
Eliminar películas de nuestra colección mediante FastAPI se logra utilizando el método DELETE. Este proceso garantiza que los recursos se eliminen de manera segura:
Definición de la ruta: Usamos app.delete para definir una nueva ruta donde especificamos que el ID debe ser pasado como un parámetro.
@app.delete("/movies/{movie_id}", tags=["movies"])defdelete_movie(movie_id:int):# Lógica de eliminaciónpass
Función de eliminación: Creamos la función delete_movie que, basado en el ID del recurso, remueva la película correspondiente de la lista.
Filtrado y eliminación: Al encontrar la película mediante un bucle, utilizamos el método .remove() para eliminarla de la lista.
for movie in movies:if movie["id"]== movie_id: movies.remove(movie)breakreturn{"msg":"Película eliminada","movies": movies}
Verificación: Finalmente, probamos la eliminación asegurándonos de que la lista de películas actualice su estado correctamente reflejando la eliminación.
Recomendaciones para trabajar con CRUD en FastAPI
Al trabajar con FastAPI y este conjunto de operaciones CRUD, ten en cuenta lo siguiente:
Documentación automática: Aprovecha la documentación generada automáticamente por FastAPI para probar tus endpoints rápidamente.
Errores de indentación: Cuando copies y pegues código, comprueba que no haya problemas de indentación que puedan generar errores.
Validaciones: Utiliza librerías como Pydantic para implementar modelos de datos que aseguraren la validación adecuada de los inputs.
Pruebas y validaciones: Asegúrate de realizar pruebas exhaustivas en cada método para garantizar el correcto funcionamiento de tu API.
Recuerda, la práctica constante es el camino hacia el dominio del desarrollo de APIs con FastAPI. Explora más allá, implementa validaciones de datos y sigue construyendo proyectos. ¡Tu aprendizaje es como un habilidad, entre más lo practiques, más fuerte se vuelve!