kprsnt2

fastapi

FastAPI framework best practices including Pydantic schemas, dependency injection, and async patterns.

kprsnt2 0 Updated 5mo ago
GitHub

Install

npx skillscat add kprsnt2/mylocalcli/fastapi

Install via the SkillsCat registry.

SKILL.md

FastAPI Best Practices

Project Structure

  • app/main.py - Application entry
  • app/routers/ - Route handlers
  • app/models/ - SQLAlchemy models
  • app/schemas/ - Pydantic schemas
  • app/services/ - Business logic
  • app/dependencies.py - Dependency injection

Pydantic Schemas

  • Use separate schemas for input/output
  • Use Field() for validation
  • Use model_validator for complex validation
  • Use Config for schema settings

Dependency Injection

  • Use Depends() for dependencies
  • Create reusable dependencies
  • Use yield for cleanup logic
  • Cache expensive dependencies

Async

  • Use async def for I/O operations
  • Use httpx for async HTTP
  • Use databases/SQLAlchemy async
  • Avoid blocking in async context

Performance

  • Use response_model for serialization
  • Enable response caching
  • Use background tasks
  • Stream large responses
  • Use connection pooling