Dependențe Globale și la Nivel de Router în FastAPI

di FastAPI 0.110+ / Python 3.10+ Q&A / Distribuie cod

Aplicarea regulilor de securitate, a verificărilor de cheie API și a limitării ratei pe toate rutele din aplicație sau dintr-un router.

Sintaxă
app = FastAPI(dependencies=[Depends(verify_token)]) / APIRouter(dependencies=...)

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"}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Dependențe Globale și la Nivel de Router

Ai o nelămurire despre utilizarea comenzii Dependențe Globale și la Nivel de Router sau 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.