在FastAPI中,你可以使用List、Dict等额外的数据类型来处理请求参数、请求体等的复杂数据结构。以下是一个演示如何在FastAPI中使用额外数据类型的简单例子:
from fastapi import FastAPI, Query

app = FastAPI()

# 使用 List 参数
@app.get("/items/")
async def read_items(q: list[str] = Query(None, title="查询参数", description="这是一个查询参数")):
    return {"q": q}

# 使用 Dict 参数
@app.post("/create_item/")
async def create_item(item: dict):
    return {"item": item}

在上面的例子中,我们定义了两个路由,一个使用List参数,另一个使用Dict参数。

  •  对于List参数,我们使用list[str]来表示一个字符串列表。在这个例子中,我们允许传递一个查询参数 q,它是一个字符串列表。

  •  对于Dict参数,我们使用dict来表示一个字典。在这个例子中,我们允许传递一个包含任何键值对的字典作为请求体。


你可以使用[httpie](https://httpie.io/)或其他工具来测试这个API。以下是一些示例:
# 测试 List 参数
http "http://127.0.0.1:8000/items/?q=test1&q=test2&q=test3"

# 测试 Dict 参数
http POST "http://127.0.0.1:8000/create_item/" item:='{"name": "example", "description": "some description"}'

在这个例子中,我们分别使用了List和Dict参数,FastAPI将会根据提供的额外数据类型来解析和验证参数。




转载请注明出处:http://www.pingtaimeng.com/article/detail/7370/FastAPI