📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials FastAPI FastAPI Routers

FastAPI Routers

5 min read Quiz at the end
Organise routes into APIRouter modules with prefix, tags, and shared dependencies.

APIRouter — Modular Apps

# routers/users.py
from fastapi import APIRouter, Depends, HTTPException
from ..dependencies import get_db, get_current_user

router = APIRouter(
    prefix="/users",
    tags=["users"],
    dependencies=[Depends(get_current_user)],
)

@router.get("/", response_model=list[UserResponse])
def list_users(db: Session = Depends(get_db)):
    return db.query(User).all()

@router.get("/{id}", response_model=UserResponse)
def get_user(id: int, db: Session = Depends(get_db)):
    return db.get(User, id) or HTTPException(404, "Not found")

@router.post("/", response_model=UserResponse, status_code=201)
def create_user(user: UserCreate, db: Session = Depends(get_db)):
    return crud.create_user(db, user)

# main.py
from routers import users, posts, auth

app = FastAPI()
app.include_router(auth.router,  prefix="/auth",  tags=["auth"])
app.include_router(users.router, prefix="/users", tags=["users"])
app.include_router(posts.router, prefix="/posts", tags=["posts"])
Topic Quiz · 1 questions

Test your understanding before moving on

1. What is an APIRouter in FastAPI?
💡 APIRouter groups related endpoints and can be included in the main app.