在FastAPI中,你可以使用额外的模型来定义请求体、查询参数、路径参数等。这样,你可以在路由中使用这些模型,同时保持API的清晰性和可读性。以下是一个简单的FastAPI教程示例,演示如何使用额外的模型:

首先,确保你已经安装了FastAPI和uvicorn:
pip install fastapi uvicorn

然后,创建一个名为main.py的文件,输入以下代码:
from fastapi import FastAPI, Query
from pydantic import BaseModel

app = FastAPI()

# 创建额外的模型
class Item(BaseModel):
    name: str
    description: str

# 使用额外的模型
@app.post("/create_item/")
async def create_item(item: Item, priority: int = Query(..., title="优先级", ge=1, le=5)):
    return {"item": item, "priority": priority}

在这个例子中,我们定义了两个模型:Item和路由函数中的额外的模型priority。Item模型用于请求体,而priority用于查询参数。通过使用这两个模型,我们可以清晰地定义路由接受的数据结构。

你可以使用[httpie](https://httpie.io/)或其他工具来测试这个API。以下是一个使用httpie的示例:
http POST "http://127.0.0.1:8000/create_item/" name="Example" description="Test item" priority:=3

在上面的命令中,我们向 /create_item/ 发送了一个POST请求,携带了一个JSON请求体和一个优先级查询参数。FastAPI将自动解析请求体和查询参数,并在响应中返回相应的信息。




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