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 paramsAll lessons in this course
- FastAPI Project Setup and First Endpoint
- Path Parameters, Query Params, and Request Bodies
- Dependency Injection and Authentication
- Async Endpoints and Database Integration