FastAPI'de İstek Akışını Anlamak: Katmanlar ve Bağlantılar

FastAPI öğrenirken her parçayı ayrı ayrı anlamak kolay, ama hepsinin bir araya nasıl çalıştığını görmek zor. Senin durumunda PostgreSQL ve Pandas ile Olist dataseti üzerinde çalışıyorsan, bu akışı somut bir örnek üzerinden anlamak çok daha faydalı olacak.

Bir API isteği FastAPI'de şöyle ilerler: İstek geldiğinde, router eşleşmeden önce middleware'ler çalışır. Sonra FastAPI path parametrelerini ve query parametrelerini çıkarır. Burada validation başlar, Pydantic schema'lar gelecek verileri kontrol eder. Eğer veri schema'ya uymuyorsa, 422 status kodu ile hata dönülür. validation burada biter.

Validation başarılıysa, dependency injection devreye girer. `Depends()` ile tanımladığın fonksiyonlar (örneğin veritabanı session'ı) burada oluşturulur ve endpoint'e geçilir. Business logic, revenue hesaplama, retention analizi gibi, artık endpoint fonksiyonunun içinde başlar. Burada validation bitmişti; artık verinin doğru olduğunu biliyorsun.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Veötabanı session'ı neden dependency injection ile yönetilir? Çünkü her istek için yeni bir session açılması, işlem bitince kapatılması gerekir. `Depends()` ile FastAPI bunu otomatik yapabilir. Örneğin:

1from fastapi import FastAPI, Depends
2from sqlalchemy.orm import Session
3from pydantic import BaseModel
4
5app = FastAPI()
6
7class RevenueRequest(BaseModel):
8seller_id: str
9
10def get_db():
11db = SessionLocal()
12try:
13yield db
14finally:
15db.close()
16
17@app.post("/revenue")
18def get_seller_revenue(req: RevenueRequest, db: Session = Depends(get_db)):
19# Validation bitti, req.seller_id güvenli
20result = db.query(Order).filter(Order.seller_id == req.seller_id).sum(Order.price)
21return {"revenue": result}

Burada `req` Pydantic tarafından validate edildi. `db` dependency injection ile sağlandı. Endpoint içinde business logic (sorgu) yazıldı. Response otomatik JSON'a dönüştürülüp 200 status ile dönülür.

FastAPI'nin içinde neler olduğunu merak ediyorsan, kaynak kodu oku, FastAPI açık kaynak. Pydantic'in validation mantığını anlamak için de dokümentasyonun 'Validators' bölümüne bak. Ama unutma: teorik bilgi önemli, ama gerçek öğrenme proje yaparak gelir. Şu an yaptığın e-commerce API'si buna mükemmel bir ortam. Hata al, debug et, akışı adım adım izle.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz