Obtener y devolver fichero PDF usando FAST-API

Tiempo de lectura: < 1 minuto

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.

Deja un comentario