Muharrem Önel

MUHARREM

Önel
Full Stack Developer
|
Blog'a Dön
Teknoloji8 Temmuz 202610 dk okuma

TypeScript ile Güvenli ve Ölçeklenebilir API Geliştirme

M
Muharrem ÖnelFull Stack Developer

Neden TypeScript ile API Geliştirmelisiniz?

JavaScript'in esnekliği küçük projelerde avantajken, büyüyen projelerde bakım kabusu haline gelebilir. TypeScript, derleme zamanında hata yakalama, otomatik tamamlama ve güçlü tip sistemiyle API geliştirmeyi çok daha güvenli hale getirir.

Tip Güvenliğinin Gerçek Değeri

TypeScript'in sağladığı tip güvenliği sadece "hata yakalama" değildir:

  • Dokümantasyon yerine geçer: Tip tanımları kodun ne yaptığını anlatır
  • Refactoring güveni: Bir şeyi değiştirdiğinizde etkilenen tüm noktaları görürsünüz
  • Ekip iletişimi: Yeni katılan developer tip tanımlarından sistemi anlar
  • IDE desteği: Otomatik tamamlama ve inline hata gösterimi

Request ve Response Tiplendirme

API'larınızın en kritik noktası giriş ve çıkış veri yapılarıdır:

  • Her endpoint için request body, query params ve response tiplerini tanımlayın
  • Generic tipler kullanarak tekrarlayan yapıları soyutlayın
  • Paginated response, error response gibi ortak yapılar için base tipler oluşturun
  • API versiyonlama ile tip uyumluluğunu koruyun

Runtime Validation: Zod ile Veri Doğrulama

TypeScript tipleri sadece derleme zamanında çalışır. Runtime'da gelen verinin doğruluğunu garanti etmez. İşte burada Zod devreye girer:

  • Schema tanımından otomatik TypeScript tipi üretimi
  • Request body validation
  • Environment variable doğrulama
  • Form validation (React Hook Form ile uyumlu)

Neden önemli?

Bir API'a gelen veri her zaman beklediğiniz formatta olmayabilir. Kötü niyetli istekler, hatalı client implementasyonları veya versiyon uyumsuzlukları — runtime validation olmadan bunların hiçbirini yakalayamazsınız.

Hata Yönetimi Stratejisi

İyi bir hata yönetimi, API'nızın güvenilirliğinin temelidir:

  • Custom error sınıfları: ValidationError, NotFoundError, UnauthorizedError gibi özel hata tipleri oluşturun
  • Merkezi hata yakalama: Global error handler ile tüm hataları tek noktada yönetin
  • Tutarlı hata formatı: Her hata yanıtı aynı yapıda olsun — code, message, details
  • Loglama: Hataları severity'ye göre loglayın — error, warn, info
  • Hassas bilgi sızıntısı: Production'da stack trace veya iç detayları döndürmeyin

Authentication ve Authorization

API güvenliğinin temel taşları:

  • JWT ile stateless authentication: Access token + refresh token stratejisi
  • Role-Based Access Control (RBAC): Kullanıcı rollerine göre endpoint erişimi
  • API Key management: Servis-arası iletişim için
  • Rate limiting: Brute force ve DDoS koruması
  • Input sanitization: SQL injection ve XSS önleme

Veritabanı Katmanı

TypeScript ile veritabanı işlemleri de tip güvenli olabilir:

  • Prisma: Şema tanımından otomatik tip üretimi, migration yönetimi
  • Drizzle: Hafif, performanslı ve tam tip güvenli ORM
  • TypeORM: Decorator tabanlı, enterprise uygulamalar için

Repository pattern kullanarak veritabanı erişimini soyutlayın — test edilebilirlik ve değiştirilebilirlik artar.

Test Stratejisi

Production-ready bir API'da testler zorunludur:

  • Unit test: İş mantığı fonksiyonlarını izole olarak test edin
  • Integration test: API endpoint'lerini gerçek veritabanıyla test edin
  • E2E test: Kullanıcı senaryolarını baştan sona test edin
  • Load test: Yük altında performansı ölçün

Test coverage hedefi olarak iş mantığında %80+, kritik endpoint'lerde %100 hedefleyin.

Proje Yapısı

Ölçeklenebilir bir API projesi için önerilen yapı:

  • Modüler mimari: Her domain (user, product, order) kendi modülünde
  • Controller → Service → Repository katmanları: Sorumlulukları ayırın
  • Middleware katmanı: Auth, validation, logging, error handling
  • Config yönetimi: Environment variable'ları merkezi olarak yönetin
  • Dependency Injection: Test edilebilirlik ve bağımlılık yönetimi

Sonuç

TypeScript ile API geliştirmek, başlangıçta biraz daha fazla kurulum gerektirse de, uzun vadede hata oranını düşürür, bakımı kolaylaştırır ve ekip verimliliğini artırır. Tip güvenliği, runtime validation ve iyi bir hata yönetimi stratejisi ile production-ready API'lar geliştirmek mümkündür.

Güvenli ve ölçeklenebilir bir API altyapısına mı ihtiyacınız var? İletişime geçin ve birlikte çözüm üretelim.

TypeScriptAPINode.jsBackendSecurityZodREST