Как должен быть отформатирован ответ fastapi? - PullRequest
2 голосов
/ 13 июля 2020

Я новичок в веб-общении. Я использую ubuntu и пытаюсь изучить fastapi. Однако я думаю, что действительно сложно понять, как отформатировать ответ, который я собираюсь отправить обратно клиенту.

Каковы правила для ответов, которые должны быть отправлены обратно? И если вы хотите отправить индивидуальный ответ - например, два файла изображений - как это закодировано?

До сих пор мне удалось заставить работать только что-то вроде этого:

@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 :( "}

Пожалуйста, помогите с этим!

1 Ответ

0 голосов
/ 15 июля 2020

Если это еще не сделано, я рекомендую вам прочитать полное руководство по fastAPI , которое очень понятно и шаг за шагом. Вообще говоря, приложение fastAPI преобразует объект, возвращаемый вашей функцией, в строку json в ответе HTTP.

Вы можете использовать схемы pydanti c в своих ответах, потому что pydanti c обрабатывает преобразование в json для вас.

Как сказано в других ответах, вы можете вернуть URL-адрес в файл или вы можете вернуть файл напрямую, используя звездочку 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")
...