Soy nuevo en la comunicación web. Yo uso ubuntu y trato de aprender fastapi. Sin embargo, creo que es realmente difícil entender cómo formatear la respuesta que pretendo enviar al cliente.
¿Cuáles son las reglas para las respuestas que deben ser devueltas? Y si desea enviar una respuesta personalizada, por ejemplo, dos archivos de imagen, ¿cómo se codifica?
Hasta ahora, solo logré que algo como esto funcionara:
@app.post("/") async def post_test(): print("Bonjour") return {"I don't know what options I have to format this response and for example return images :( "}¡Por favor ayuda con esto!
Si aún no lo ha hecho, lo animo a leer el tutorial completo de fastAPI, que es muy claro y paso a paso. En términos generales, una aplicación fastAPI convertirá el objeto devuelto por su función en una cadena json en la respuesta HTTP.
Puede usar esquemas pydantic en sus respuestas porque pydantic maneja la conversión a json por usted.
Como se dijo en otras respuestas, puede devolver la URL a un archivo, o puede devolver el archivo directamente usando una Starlette FileResponse.
from starlette.responses import FileResponse @app.get("/my_file") async def download_file(self): return FileResponse(path="my_file.png", filename="my_file", media_type="image/png")