FastAPI Curso: 229 Respuesta como un Flujo de Datos (Stream) con la Clase FileResponse
En este artículo del curso de FastAPI, vamos a aprender cómo podemos enviar una respuesta como un flujo de datos (stream) utilizando la clase FileResponse.
Para empezar, debemos importar la clase FileResponse de la librería fastapi.responses. Luego, en nuestra ruta o endpoint, podemos crear una instancia de FileResponse pasando como argumento el archivo que queremos enviar como un flujo de datos.
from fastapi import FastAPI
from fastapi.responses import FileResponse
app = FastAPI()
@app.get("/archivo")
async def stream_file():
return FileResponse("file.pdf")
En el ejemplo anterior, estamos creando un endpoint /archivo que devuelve el archivo file.pdf como un flujo de datos. La clase FileResponse se encarga de manejar la lectura y envío del archivo de manera eficiente.
También podemos especificar el nombre del archivo y el tipo de contenido en la respuesta:
@app.get("/imagen")
async def stream_image():
return FileResponse("imagen.jpg", media_type="image/jpeg", filename="imagen.jpg")
De esta forma, podemos enviar cualquier tipo de archivo como un flujo de datos en nuestra aplicación FastAPI. La clase FileResponse nos facilita la tarea de enviar archivos de manera eficiente y segura.
Espero que este artículo te haya sido útil para aprender cómo enviar respuestas como flujos de datos con FastAPI utilizando la clase FileResponse.