【问题标题】:How should a fastapi response be formatted?fastapi 响应应该如何格式化?
【发布时间】:2020-11-03 01:48:26
【问题描述】:

我是网络通信的新手。 我使用 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 :( "}

请帮忙!

【问题讨论】:

  • 图像文件通常作为 url 发送...
  • 听起来您应该从基本的 API 101 教程开始,以熟悉 REST 的请求/响应内容。这可能会简化您使用 FastAPI 等 API 平台的入门
  • 去过那里,做到了。了解所有原则和想法,但很难找到有关如何形成响应的信息。
  • 首先,图像是(从服务器)作为 URL 接收的。您是否尝试返回 URL? @HenrikLeijon

标签: python fastapi


【解决方案1】:

如果您还没有完成,我鼓励您阅读完整的fastAPI tutorial,它非常清晰且循序渐进。 一般来说,fastAPI 应用会将您的函数返回的对象转换为 HTTP 响应中的 json 字符串。

您可以在响应中使用 pydantic 模式,因为 pydantic 会为您处理到 json 的转换。

正如在其他答案中所说,您可以将 url 返回到文件,也可以使用 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")

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2022-01-22
    • 2017-11-28
    • 2014-01-21
    • 2018-06-25
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多