FastAPI Decorators Cheatsheet
Quick reference for FastAPI route, dependency, event, response, and middleware decorators.
| Decorator | Description | Example | Category |
|---|---|---|---|
| @app.get() | GET route | @app.get("/items") def read_items(): return {"items": []} | Routes |
| @app.post() | POST route | @app.post("/items") def create_item(item: Item): return item | Routes |
| @app.put() | PUT route | @app.put("/items/{id}") def update_item(id: int, item: Item): return item | Routes |
| @app.delete() | DELETE route | @app.delete("/items/{id}") def delete_item(id: int): return {"deleted": id} | Routes |
| @app.patch() | PATCH route | @app.patch("/items/{id}") def patch_item(id: int, data: dict): return data | Routes |
| Depends() | Inject dependency | def get_db(): db = Session(); yield db @app.get("/users") def read_users(db=Depends(get_db)): | Dependencies |
| @app.on_event("startup") | Run code on startup | @app.on_event("startup") def startup_event(): print("Starting app") | Events |
| @app.on_event("shutdown") | Run code on shutdown | @app.on_event("shutdown") def shutdown_event(): print("Shutting down") | Events |
| @app.response_model() | Specify response model | @app.get("/users", response_model=List[User]) | Responses |
| @app.status_code() | Set HTTP status code | @app.post("/items", status_code=201) | Responses |
| @app.exception_handler() | Custom exception handler | @app.exception_handler(HTTPException) def handle_exception(request, exc): return JSONResponse({"error": str(exc)}) | Responses |
| @app.middleware("http") | Add middleware for requests | @app.middleware("http") async def add_process_time(request, call_next): response = await call_next(request); return response | Middleware |