from fastapi import FastAPI
import asyncio
app = FastAPI()
@app.get("/items/{item_id}")
async def get_item(item_id: int):
await asyncio.sleep(1)
return {"item_id": item_id, "name": "Sample Item"}
@app.post("/process")
async def process_data(data: dict):
result = await asyncio.gather(
fetch_from_api_1(),
fetch_from_api_2(),
query_database()
)
return {"status": "processed", "result": result}
关键优势:
减少线程开销,轻松处理数千个并发连接
更好的资源利用率
自然的代码流程,易于理解和维护
2. 自动化数据验证与序列化
FastAPI集成Pydantic,提供强大的类型提示和自动数据验证能力。
from pydantic import BaseModel, Field
from typing import Optional
class UserCreate(BaseModel):
"""用户创建模型"""
username: str = Field(..., min_length=3, max_length=50)
email: str
age: Optional[int] = Field(None, ge=0, le=150)
class Config:
json_schema_extra = {
"example": {
"username": "johndoe",
"email": "john@example.com",
"age": 25
}
}
@app.post("/users/")
async def create_user(user: UserCreate):
return {"message": f"User {user.username} created", "data":
user}
优势:
自动请求体验证
自动JSON Schema生成
IDE智能提示支持
减少样板代码