以下是一个使用 Pydantic 模型的 FastAPI 示例:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
# 定义 Pydantic 模型
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
# 使用 Pydantic 模型作为请求体参数
@app.post("/items/")
async def create_item(item: Item):
return item
# 使用 Pydantic 模型作为响应体
@app.get("/items/{item_id}")
async def read_item(item_id: int):
fake_item = {"item_id": item_id, "name": "Foo", "description": "Some Item", "price": 42.0}
return Item(**fake_item)
在上述示例中,Item 是一个 Pydantic 模型,它定义了输入数据的结构。在 create_item 函数中,item 参数的类型是 Item,FastAPI 会自动解析请求体中的 JSON 数据,并使用 Pydantic 模型进行验证。
同样,在 read_item 函数中,使用 Pydantic 模型 Item 作为响应的数据结构,FastAPI 将自动根据模型生成文档,并验证响应的结构。
Pydantic 模型支持许多功能,如字段类型、默认值、验证规则等,详细信息可以查阅 Pydantic 文档。在 FastAPI 中,Pydantic 模型与请求和响应的处理集成得非常好,使得开发 API 更加便捷和安全。
转载请注明出处:http://www.pingtaimeng.com/article/detail/13932/FastAPI