Dacă ai o verificare de securitate (de exemplu validarea unei chei API secrete sau a unui token de administrator) care trebuie aplicată pe absolut toate rutele dintr-un modul, nu este necesar să repeți Depends() pe fiecare funcție individuală.
FastAPI permite declararea listei de dependențe direct la inițializarea APIRouter(dependencies=[...]) sau chiar global la nivelul întregii aplicații FastAPI(dependencies=[...]).
Exemplu: Securizarea unui router întreg de administrare cu dependență comună
from fastapi import FastAPI, APIRouter, Header, HTTPException, Depends
from typing import Annotated
async def verify_admin_token(x_admin_token: Annotated[str, Header()]):
if x_admin_token != "super-admin-secret":
raise HTTPException(status_code=403, detail="Acces interzis: token administrator invalid")
# Toate rutele din acest router vor executa automat verificarea de token:
admin_router = APIRouter(
prefix="/admin",
tags=["Administrare"],
dependencies=[Depends(verify_admin_token)]
)
@admin_router.get("/metrics")
async def get_metrics():
return {"cpu": "12%", "ram": "512MB"}
@admin_router.post("/purge-cache")
async def purge_cache():
return {"status": "Cache golit"}
Întrebări & Exemple de Cod:
Dependențe Globale și la Nivel de RouterAi o nelămurire despre utilizarea comenzii
Dependențe Globale și la Nivel de Routersau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.