Python (FastAPI & Django) Orta Seviye Modern Web & API

FastAPI Mimarisi: ASGI, Starlette, Pydantic & Dependency Injection

Flask kolaylığı + Go performansı + otomatik Swagger dokümantasyonu.

5 Yaşındaki Çocuğa Anlatır Gibi (Analoji)

Sipariş fişini bilgisayarlı tabletle alan akıllı garsondur. Yanlış sipariş verirsen (veri tipi hatalıysa) anında mutfağa gitmeden seni uyarır (Pydantic validasyonu).

Teknik & Mimari Tanım

FastAPI, web katmanı için Starlette (ASGI), veri doğrulama ve serileştirme için Pydantic v2 (Rust çekirdekli) kullanır. "Depends" mekanizması ile sınıf veya fonksiyon bazlı hiyerarşik Dependency Injection sağlar. Uvicorn sunucusu üzerinde asenkron koşturulur.

Mülakatta Ne Demelisin? (Kurtarıcı Altın Cevap)

“FastAPI, Python tip ipuçlarını (type hints) kullanarak tek seferde hem veri doğrulaması (Pydantic), hem OpenAPI (Swagger) şeması, hem de otomatik serileştirme üretir. Depends() fonksiyonu ile veritabanı oturumları (SQLAlchemy Session) güvenle scoped yönetilir.”

Python (FastAPI & Django) Örnek Uygulaması
from fastapi import FastAPI, Depends, HTTPException
from pydantic import BaseModel, EmailStr

class UserCreate(BaseModel):
    name: str
    email: EmailStr

@app.post("/users")
async def create_user(dto: UserCreate, db: Session = Depends(get_db)):
    # dto otomatik validate edilmiştir, db bağlantısı enjekte edilmiştir
    return {"status": "ok", "email": dto.email}
Mülakat Tuzağı & Adayların En Sık Yaptığı Hata:

Pydantic modelini veritabanı ORM modeli sanmak; Pydantic veri transferi (DTO/Validasyon) içindir, SQLAlchemy veya Tortoise ise persistence içindir.