【问题标题】:FastAPI/Pydantic accept arbitrary post request body?FastAPI/Pydantic 接受任意发布请求正文?
【发布时间】:2020-09-27 17:26:37
【问题描述】:

我想创建一个 FastAPI 端点,它只接受任意的 post 请求正文并返回它。

如果我发送 {"foo" : "bar"} ,我想找回 {"foo" : "bar"} 。但我也希望能够发送{"foo1" : "bar1", "foo2" : "bar2"} 并取回。

我试过了:

from fastapi import FastAPI
app = FastAPI()

app.post("/")
async def handle(request: BaseModel):
    return request

但无论我发送什么,它都会返回一个空字典。

有什么想法吗?

【问题讨论】:

    标签: python python-3.x fastapi pydantic starlette


    【解决方案1】:

    你可以使用类型提示 Dict[Any, Any] 告诉 FastAPI 你期待任何有效的 JSON:

    from typing import Any, Dict
    from fastapi import FastAPI
    
    app = FastAPI()
    
    @app.post("/")
    async def handle(request: Dict[Any, Any]):
        return request
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2021-08-25
      • 2022-06-12
      • 2020-12-13
      • 1970-01-01
      • 2021-10-09
      相关资源
      最近更新 更多