以下是一个简单的 FastAPI 示例,用于创建一个带有路径参数和请求体验证的 API:
from fastapi import FastAPI, Path, Query, Body
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(
item_id: int = Path(..., title="The ID of the item to get", ge=1),
q: str = Query(None, alias="item-query"),
item: dict = Body(..., example={"name": "item name", "description": "item description"})
):
return {"item_id": item_id, "q": q, "item": item}
在这个例子中:
- @app.get("/items/{item_id}") 表示创建一个处理 GET 请求的路径为 "/items/{item_id}" 的端点。
- item_id: int = Path(..., title="The ID of the item to get", ge=1) 定义了一个路径参数 item_id,并进行了类型验证和元数据的添加,如标题和最小值。
- q: str = Query(None, alias="item-query") 定义了一个查询参数 q,并提供了别名。
- item: dict = Body(..., example={"name": "item name", "description": "item description"}) 定义了一个请求体参数 item,并提供了示例值。
FastAPI 将自动生成交互式文档,并使用 Pydantic 模型进行请求和响应的验证。这只是 FastAPI 功能的一小部分,它还支持异步处理、依赖注入、WebSocket 等多种功能。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7404/FastAPI