Hola, hoy vamos a ver cómo podemos obtener un fichero PDF guardado y devolverlo usando Fast API con Python.
Vamos a nuestro archivo de routes y añadimos las dependencias necesarias (aparte de las de Fast API):
import os from fastapi.responses import FileResponse
Ahora vamos a crear nuestro Route que será un GET que devolverá el archivo PDF.
@app.get("/get_pdf", status_code=status.HTTP_200_OK) def get_convenio_pdf() -> FileResponse: # Teniendo el nombre del fichero, devolver el fichero dentro de la carpeta pdf nombre_fichero = "nombre_fichero_devolver" pdf_folder = "pdf" pdf = os.path.join(pdf_folder, nombre_fichero) # Verificar si el archivo existe if not os.path.exists(pdf): return {"error": "El archivo no existe"} # Devolver el fichero pdf de la carpeta /pdf/ return FileResponse(pdf, media_type='application/pdf', filename=nombre_fichero)
En esta función tan simple, cuando invocamos /get_pdf obtenemos el PDF dentro de la carpeta /pdf/fichero.pdf
Indicamos el nombre en la variable nombre_fichero, pero podemos pasar el nombre como parámetro por ejemplo o también podemos almacenarlo en la base de datos y enlazarlo por ID.
Finalmente lo devuleve mediante un objeto FileResponse, esto devolverá un BLOB del PDF.
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.