FastAPI Decorators Cheatsheet

Quick reference for FastAPI route, dependency, event, response, and middleware decorators.

DecoratorDescriptionExampleCategory
@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 itemRoutes
@app.put()PUT route@app.put("/items/{id}") def update_item(id: int, item: Item): return itemRoutes
@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 dataRoutes
Depends()Inject dependencydef 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 responseMiddleware