关于 fastapi
面向 Python 开发者的 FastAPI 技能,涵盖 REST 和异步 API 开发。内容包括 Pydantic 模型、依赖注入、认证、文档、异步数据库模式及部署。
主要功能
- 01REST 与异步 API 搭建
- 02Pydantic 请求和响应模型
- 03依赖注入与认证
- 04路由和 OpenAPI 文档
- 05异步数据库模式
适用场景
- 01构建带校验模型的 REST API
- 02添加认证和中间件
- 03异步连接数据库
- 04测试并部署 FastAPI 应用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ partme-ai/ full-stack-skills --skill fastapi安装后在 Claude Code 中输入/fastapi确认已加载。
附带文件LICENSE.txt
详细介绍
何时使用此技能
在用户希望执行以下操作时使用此技能:
- 使用 FastAPI 和 Pydantic 模型构建 REST 或异步 API
- 实现依赖注入、身份验证或中间件
- 配置路由、OpenAPI 文档和部署
- 使用异步模式与数据库集成
如何使用此技能
工作流
- 创建应用 — 实例化
FastAPI()并定义路由处理程序 - 定义模型 — 使用 Pydantic 验证请求和响应
- 添加依赖项 — 为身份验证、数据库会话等实现 DI
- 测试并部署 — 使用 uvicorn 运行,并通过
/docs验证
快速入门示例
from fastapi import FastAPI, HTTPException, Depends
from pydantic import BaseModel
from datetime import datetime
app = FastAPI(title="My API", version="1.0.0")
# Request/Response models
class ItemCreate(BaseModel):
name: str
price: float
description: str | None = None
class ItemResponse(ItemCreate):
id: int
created_at: datetime
# Dependency example
async def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
# Route handlers
@app.post("/items/", response_model=ItemResponse, status_code=201)
async def create_item(item: ItemCreate, db=Depends(get_db)):
db_item = Item(**item.model_dump())
db.add(db_item)
db.commit()
return db_item
@app.get("/items/{item_id}", response_model=ItemResponse)
async def get_item(item_id: int, db=Depends(get_db)):
item = db.query(Item).get(item_id)
if not item:
raise HTTPException(status_code=404, detail="Item not found")
return item
# Run the server
uvicorn main:app --reload
# Interactive docs available at http://localhost:8000/docs
身份验证示例
from fastapi.security import OAuth2PasswordBearer
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/users/me")
async def read_current_user(token: str = Depends(oauth2_scheme)):
user = verify_token(token)
if not user:
raise HTTPException(status_code=401, detail="Invalid token")
return user
最佳实践
- 使用 Pydantic 定义明确的请求和响应架构;保持状态码一致
- 使用异步函数和数据库连接池来实现高并发
- 为生产环境配置 CORS 中间件和安全标头
- 利用自动生成的 OpenAPI 文档(
/docs、/redoc)探索 API - 使用
BackgroundTasks执行发送邮件等非阻塞操作
参考资料
关键词
fastapi、异步 API、Pydantic、OpenAPI、依赖注入、Python Web、REST API、uvicorn
评论
支持 Markdown