FastAPI Best Practices
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
FastAPI done right. Async/sync endpoint selection, Depends() for dependency injection, Pydantic v2
models, lifespan context managers, BackgroundTasks, APIRouter, Annotated types, and production
project structure.
> AI coding assistants make every endpoint async, use global variables instead of Depends(),
> generate Pydantic v1 decorators, and put all routes in a single file. This plugin enforces the
> patterns that make FastAPI production-ready.
Install
Cursor / Claude Code / Windsurf
Or copy skills/ into your .cursor/skills/ or .claude/skills/ directory.
What's Included
| Type | Name | Description |
| ------- | ------------------------ | ---------------------------------------------------------------------------------- |
| Skill | fastapi-best-practices | 10 rules for async patterns, Depends(), Pydantic v2, lifespan, APIRouter, and more |
| Rule | best-practices | Always-on behavioral rule that enforces current FastAPI patterns |
| Command | /audit | Scan your codebase for FastAPI anti-patterns |
What Agents Get Wrong
| What the agent writes | What FastAPI best practice is |
| ------------------------------- | ---------------------------------------------- |
| async def for everything | async def for I/O, def for CPU-bound |
| Global db variable | Depends(get_db) dependency injection |
| @validator, class Config | field_validator, ConfigDict (Pydantic v2) |
| @app.on_event("startup") | lifespan context manager |
| All routes in main.py | APIRouter with organized modules |
| asyncio.create_task() | BackgroundTasks for fire-and-forget work |
| return {"error": "not found"} | response_model + status.HTTP_404_NOT_FOUND |
Related Plugins
- python-best-practices - Python 3.12+ type
hints, Pydantic v2, uv, pathlib
- vibe-guard - Security guardrails for API endpoints
---