← ClaudeAtlas

py-fastapi-patternslisted

FastAPI patterns for API design. Use when creating endpoints, handling dependencies, error handling, or working with OpenAPI schemas.
aiskillstore/marketplace · ★ 329 · API & Backend · score 79
Install: claude install-skill aiskillstore/marketplace
# FastAPI Patterns ## Problem Statement FastAPI API design directly affects frontend. Bad patterns here cause frontend bugs, poor developer experience, and integration issues. The OpenAPI schema drives frontend code generation. --- ## Pattern: Dependency Injection **Problem:** Repetitive code for auth, sessions, and services. ```python from fastapi import Depends from sqlalchemy.ext.asyncio import AsyncSession # ✅ CORRECT: Dependencies for common needs async def get_session() -> AsyncGenerator[AsyncSession, None]: async with async_session() as session: yield session async def get_current_user( token: str = Depends(oauth2_scheme), session: AsyncSession = Depends(get_session), ) -> User: user = await verify_token_and_get_user(token, session) if not user: raise HTTPException(401, "Invalid authentication") return user async def get_current_active_user( user: User = Depends(get_current_user), ) -> User: if not user.is_active: raise HTTPException(403, "User is inactive") return user # ✅ CORRECT: Endpoint using dependencies @router.post("/assessments", response_model=AssessmentRead) async def create_assessment( data: AssessmentCreate, current_user: User = Depends(get_current_active_user), session: AsyncSession = Depends(get_session), ) -> AssessmentRead: assessment = Assessment(**data.model_dump(), user_id=current_user.id) session.add(assessment) await session.commit() await session.ref