Skip to content
fastapi logo

fastapi

FastAPI Python async framework with Pydantic and automatic OpenAPI. Use for Python APIs.

G1Joshi/Agent-Skills0installs13stars

SKILL.md

Full skill instructions

FastAPI

FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.8+ based on standard Python type hints. It is one of the fastest Python frameworks available.

When to Use

  • APIs: The default choice for modern Python APIs.
  • Machine Learning: Native integration with Pydantic makes JSON <-> Model interaction seamless.
  • Performance: Built on Starlette and Pydantic v2, it rivals Node.js and Go in benchmarks.

Quick Start

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float

@app.post("/​items/")
async def create_item(item: Item):
    return {"name": item.name, "price": item.price}

Core Concepts

Pydantic Models

Define data shape using Python classes. Validation and JSON serialization happen automatically.

Dependency Injection

FastAPI has a powerful DI system. async def read_users(db: Session = Depends(get_db)):.

OpenAPI (Swagger)

Automatically generates interactive API documentation at /​docs.

Best Practices (2025)

Do:

  • Use Pydantic v2: Ensure you are on v2 for the massive Rust-based performance boost.
  • Use lifespan: Use the new lifespan context manager for startup/​shutdown events instead of deprecated on_event.
  • Type Everything: The more you type, the better the auto-generated docs and validation.

Don't:

  • Don't block the loop: Run CPU bound code (image processing, heavy math) in def endpoints (threadpool), not async def (event loop), or use background tasks.

References