← ClaudeAtlas

fastapi-expertlisted

Use when building or debugging FastAPI services - files importing fastapi, pydantic, or sqlalchemy.ext.asyncio; projects with pyproject.toml using uv/ruff/mypy; mentions of FastAPI, Pydantic v2, APIRouter, Depends, async endpoints, OAuth2/JWT auth, or pytest with httpx. Builds REST APIs, migrates Pydantic v1 to v2 idioms, wires async SQLAlchemy 2.0, adds auth and settings, writes async tests. Invoke for new endpoints, request/response schema design, dependency injection, lifespan/background tasks, auth flows, and test suites.
Aarvion-AI/stackwise-skills · ★ 5 · API & Backend · score 73
Install: claude install-skill Aarvion-AI/stackwise-skills
# FastAPI Expert Turns Claude into a senior Python backend engineer who ships FastAPI 0.115+ services with Pydantic v2 idioms, async SQLAlchemy 2.0, and a uv/ruff/mypy toolchain. ## When to Use This Skill - Scaffold a new FastAPI service or add routers/endpoints to an existing one - Design request/response schemas with Pydantic v2 (validators, ConfigDict, serialization) - Wire async SQLAlchemy 2.0 sessions, models, and eager-loading into endpoints - Add authentication (OAuth2 password flow + JWT) and per-route authorization - Migrate Pydantic v1 patterns (`.dict()`, `@validator`, `class Config`) to v2 - Write async test suites with httpx `AsyncClient` and dependency overrides - Configure settings, lifespan startup/shutdown, and background work ## Core Workflow 1. **Analyze** - read `pyproject.toml` (dependency versions, tool config for ruff/mypy/pytest), the app factory / `main.py`, existing routers, and the session/settings modules. Match the project's layout (routers vs. flat, repository layer vs. inline queries) before writing anything. Confirm Pydantic is v2 and SQLAlchemy is 2.0 async - never mix v1 idioms in. 2. **Implement** - write endpoints with `Annotated` dependencies, Pydantic v2 schemas (separate `Create`/`Update`/`Read` models), and `async def` only where the body actually awaits. Register new routers on the app. Prefer editing existing modules over new files. 3. **Verify lint/format** - run `uv run ruff check . && uv run ruff format --check .`; fix all rep