Teknolojiler

← Ana sayfa
Backend & API

Python & FastAPI Backend — modern ve ölçeklenebilir API'ler

FastAPI, asenkron REST API'ler için başvuru niteliğindeki Python framework'üdür. Python'un yerel type hint'lerini otomatik Pydantic doğrulaması, otomatik üretilen OpenAPI dokümantasyonu ve Node.js ile kıyaslanabilir ASGI performansıyla birleştirir — kodun okunabilirliğinden ödün vermeden.

FastAPI — Python için API çatısı

FastAPI, Uvicorn (ASGI sunucusu) üzerinde çalışır; üretimde çoklu süreç için Gunicorn ile birlikte kullanılır. Redis önbelleğinden okuyan basit bir endpoint, veritabanını her istekte sorgulamak zorunda kalmaz. Yerel Dependency Injection, herhangi bir katmanın karmaşık mock'lar olmadan yalıtılmış biçimde test edilmesini sağlar: kimlik doğrulama, veritabanı oturumu, rate limiting — her biri enjekte edilebilir bir bağımlılıktır.

OpenAPI 3.1 dokümantasyonu type hint'lerden otomatik üretilir — Swagger UI ve ReDoc geliştirme ortamında `/docs` ve `/redoc` adreslerinde bulunur. Pydantic v2 şeması (Rust tabanlı doğrulayıcı), istekleri ve yanıtları Pydantic v1'e göre 10–20 kat daha hızlı doğrular. Geçersiz her alan, net ve yerelleştirilmiş hata mesajlarıyla 422 döndürür.

  • Yerel async/await — tüm veritabanı ve HTTP işlemlerinde engellemeyen I/O
  • Yanıt sonrası işlemler (e-posta, webhook, log) için BackgroundTasks
  • Gerçek zamanlı özellikler (sohbet, bildirimler) için yerel WebSocket desteği
  • slowapi ile rate limiting (limits tabanlı) — IP başına ve kullanıcı başına
  • CORS, sıkıştırma (gzip/brotli), request ID, zamanlama middleware'leri

PostgreSQL, SQLAlchemy ve Alembic

Tüm veritabanı işlemlerinde SQLAlchemy 2.0 async (asyncpg sürücüsü) kullanıyoruz. Modeller Mapped tipleriyle tanımlanır — tip güvenli, string'siz. Karmaşık sorgular SQLAlchemy Core (derleme zamanında kontrol edilen) ile ya da bind parametreli `text()` üzerinden saf SQL ile yazılır — asla string interpolation yapılmaz (SQLi'ye karşı tam önlem).

Alembic migrasyonları model değişikliklerinden otomatik üretilir ve uygulanmadan önce elle gözden geçirilir. Her migrasyonun test edilmiş `upgrade()` ve `downgrade()` fonksiyonları vardır. Üretimde migrasyonlar dağıtımdan önce CI'da çalışır — veritabanı her zaman kodla senkron kalır. asyncpg üzerinden connection pooling, servis başına yapılandırılabilir havuz boyutuyla sağlanır.

  • Kritik eşzamanlı işlemler için `SELECT ... FOR UPDATE` ile satır düzeyinde kilitleme
  • pg_trgm ve tsvector ile tam metin arama — basit durumlar için Elasticsearch gerekmez
  • GIN indeksli, yarı yapılandırılmış veriler için JSONB
  • Milyonlarca satırlı tablolar (log, event) için bölümlenmiş tablolar

Redis önbellekleme ve yatay ölçekleme

Redis 7; uygulama önbelleği (endpoint başına TTL), oturum deposu (seçici iptal özellikli JWT refresh token'lar), gerçek zamanlı olaylar için pub/sub ve arka plan işleri için kuyruklar (Celery veya ARQ) olarak kullanılır. Önbellek stratejisi, açık geçersiz kılmalı cache-aside'dır — eski veri sunabilen kör TTL değil.

  • Access token (15 dk) + Redis'te refresh token (7 gün) ile JWT kimlik doğrulama
  • Asenkron görevler (PDF üretimi, e-posta, içe aktarmalar) için Celery + Redis broker
  • DB, Redis durumunu ve dağıtım sürümünü bildiren `/health` endpoint'i
  • Yapılandırılmış JSON loglama (structlog) — Loki/Datadog/ELK ile uyumlu

Avantajlar ve sınırlamalar

Avantajlar

  • I/O'da Node.js ve Go ile kıyaslanabilir ASGI performansı.
  • Type hint'lerden otomatik üretilen OpenAPI dokümantasyonu.
  • Net 422 hataları veren hızlı Pydantic v2 doğrulaması.
  • Okunabilir kod; çoğu ekip için tanıdık bir dil olan Python.

Sınırlamalar

  • Python, CPU yoğun görevlerde Go veya Rust'tan yavaş kalır.
  • async/await disiplin ister — engelleyen tek bir çağrı tüm event loop'u bloke eder.
  • Hazır sunulan özellikler açısından Django'dan daha genç bir ekosistem.
  • Yerleşik ORM veya admin içermez — bunları ayrıca seçersiniz.

Kısa değerlendirme

Asenkron REST API'ler, mikroservisler ve SPA/mobil backend'leri için FastAPI'yi seçin. Aşırı CPU-bound uygulamalar veya hazır admin paneli olan monolitler için sırasıyla Go ve Django daha uygun olabilir.

Teknik özellikler tablosu

YetenekSınır / eşikTipik kullanım
Eşzamanlılıkasync/await, engellemeyen I/OCPU-bound işler ayrı worker'lar gerektirirÇok sayıda DB/HTTP çağrısı yapan API'ler
GecikmeRedis önbelleğinden okuma, veritabanı sorgusu olmadanBüyük payload'ların serileştirilmesiyle artarSaaS, mobil, gerçek zamanlı backend
Doğrulama ve dokümantasyonPydantic v2 + otomatik OpenAPI 3.1Karmaşık şema başlatma süresini artırırSwagger/ReDoc'lu herkese açık API'ler
Tipik maliyetAçık kaynak, 1 vCPU'da çalışırYatay ölçekleme daha fazla süreç gerektirirMVP'den üretime

FastAPI ve alternatifleri

KriterFastAPIDjango / Express
Asenkron performansMükemmel (yerel ASGI)Django kısmen, Express iyi
Otomatik OpenAPI dokümanlarıEvet, type hint'lerdenEk paket gerektirir
Yerleşik admin / ORMHayır (ayrıca seçilir)Django: evet; Express: hayır

Sık sorulan sorular

FastAPI, Django'dan daha hızlı mı?

I/O'da evet. FastAPI, ASGI üzerinde asenkron çalışır; bu yüzden DB/HTTP çağrılı eşzamanlı isteklerin çok daha fazlasını klasik senkron Django'dan daha iyi karşılar. Ancak Django'nun yerleşik özellikleri daha fazladır.

FastAPI hangi iş için uygun değildir?

Yoğun CPU-bound görevlerde (görüntü işleme, ağır sayısal hesaplama) Python, Go veya Rust'tan yavaştır; bunları ayrı worker'lara taşırsınız. Ayrıca Django gibi hazır bir admin paneliyle gelmez.

FastAPI'nin bir ORM'ye ihtiyacı var mı?

Zorunlu değil. Migrasyonlar için Alembic'li SQLAlchemy 2.0 async kullanıyoruz, ancak saf SQL de yazabilirsiniz. ORM dahil değildir; projeye göre seçersiniz.

Bir FastAPI backend'i nasıl ölçeklerim?

Yatay olarak: Gunicorn altında birden çok Uvicorn süreci çalıştırır, bir yük dengeleyicinin arkasına koyar, Redis önbelleği kullanır ve ağır görevleri Celery'ye taşırsınız. Stateless tasarım, gerektiğinde örnek eklemeye izin verir.

4b2b.net
İş ekosistemi
4conta.ro
Muhasebe
4invoices.net
Faturalama uygulaması
4expenses.net
Masraf yönetimi
4notify.net
Bildirimler
4hosting.net
Barındırma
4database.net
Veritabanları
4buildsite.net
Web sitesi oluşturucu
4myapp.net
Uygulama oluşturucu
4avatars.net
Yapay Zekâ Avatarları
4chaty.net
Yapay Zekâ Sohbet Robotu
4webagency.net
Web ajansı yazılımı
4softedu.net
Eğitim web siteleri
4softcrm.net
CRM platformu
4softerp.net
ERP sistemi
4softhr.net
İK yönetimi
4mystaff.net
Personel portalı
4myprojects.net
Proje yöneticisi
4mycontracts.net
Sözleşmeler
4docs.net
Doküman yönetimi
4appointments.net
Randevular
4marketingonline.net
Pazarlama
4insurance.net
Sigorta
4property.net
Emlak
4lawyers.net
Hukuk yazılımı
4mygarage.net
Oto servis
4driving.net
Sürücü kursları
4fleet.net
Filo yönetimi
4myevents.net
Etkinlikler
4therapy.net
Terapi
4clinics.net
Klinikler
4dental.net
Diş Klinikleri
4restaurants.net
Restoranlar
4beautify.net
Güzellik salonu
4gym.net
Spor salonları
4guards.net
Güvenlik şirketleri
4softvet.net
Veteriner klinikleri
4softauto.net
Otomotiv işletme yazılımı
4construct.net
İnşaat firmaları
4marketplace.net
Pazar yeri
4shopy.net
Online mağaza
4pricing.net
Fiyat karşılaştırma
4salefood.net
Yemek teslimatı
4rentify.net
Kiralama
4transports.net
Taşımacılık
4agencytravel.net
Seyahat acentesi
4hotel.net
Otel yönetimi
4ong.net
STK Yonetimi