API & Backend
FastAPI Dependency Injection (DI) ile Temiz ve Test Edilebilir Mimari Kurulumu
FastAPI'nin Depends mekanizmasını kullanarak veritabanı oturumlarını, kimlik doğrulama katmanlarını ve servis bağımlılıklarını izole etme rehberi.
3 dk
Depends() ile Bağımlılık Yönetimi
Kod tekrarını önlemek ve birim testlerinde veritabanını kolayca mock'layabilmek için FastAPI'nin Dependency Injection sistemi kullanılır.
dependencies.py
from fastapi import Depends, FastAPI, HTTPException, status
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
app = FastAPI()
security = HTTPBearer()
async def get_current_user(creds: HTTPAuthorizationCredentials = Depends(security)):
token = creds.credentials
if token != "secret-token":
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Geçersiz Token")
return {"user_id": "usr_123", "role": "admin"}
@app.get("/protected-dashboard")
async def dashboard(user: dict = Depends(get_current_user)):
return {"message": f"Hoş geldiniz {user['user_id']}"}