0Pricing
Python Academy · Lesson

Dependency Injection and Authentication

Use FastAPI's DI system for shared logic and JWT-based auth.

What Is Dependency Injection?

FastAPI's Depends() lets you declare shared logic (DB sessions, auth checks, config) that is automatically injected into route handlers.

from fastapi import FastAPI, Depends
app = FastAPI()

def get_db():
    db = connect_db()
    try: yield db
    finally: db.close()

@app.get("/users")
def list_users(db = Depends(get_db)):
    return db.query_all("users")

Dependency Functions

A dependency is any callable. It can be a function, class, or another dependency-using function.

from fastapi import Depends, FastAPI
app = FastAPI()

def common_params(skip: int = 0, limit: int = 10):
    return {"skip": skip, "limit": limit}

@app.get("/items")
def list_items(params: dict = Depends(common_params)):
    return params

@app.get("/users")
def list_users(params: dict = Depends(common_params)):
    return params

All lessons in this course

  1. FastAPI Project Setup and First Endpoint
  2. Path Parameters, Query Params, and Request Bodies
  3. Dependency Injection and Authentication
  4. Async Endpoints and Database Integration
← Back to Python Academy