mcpField
F
fastapi

fastapi

github.com/partme-ai开发72570 次安装4 周前更新
代码仓库

关于 fastapi

面向 Python 开发者的 FastAPI 技能,涵盖 REST 和异步 API 开发。内容包括 Pydantic 模型、依赖注入、认证、文档、异步数据库模式及部署。

主要功能

  1. 01REST 与异步 API 搭建
  2. 02Pydantic 请求和响应模型
  3. 03依赖注入与认证
  4. 04路由和 OpenAPI 文档
  5. 05异步数据库模式

适用场景

  1. 01构建带校验模型的 REST API
  2. 02添加认证和中间件
  3. 03异步连接数据库
  4. 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 文档和部署
  • 使用异步模式与数据库集成

如何使用此技能

工作流
  1. 创建应用 — 实例化 FastAPI() 并定义路由处理程序
  2. 定义模型 — 使用 Pydantic 验证请求和响应
  3. 添加依赖项 — 为身份验证、数据库会话等实现 DI
  4. 测试并部署 — 使用 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