API Entegrasyon Stratejisi

4 Şubat 2026

Üçüncü taraf API seçiminden fallback tasarımına, maliyet optimizasyonundan entegrasyon testine kadar pratik rehber.

Üçüncü Taraf API Seçim Kriterleri

Bir API'yi üretime almadan önce üç metriği sırayla kontrol et: uptime SLA, rate limit yapısı ve fiyatlandırma modeli. %99,9 altı SLA sunan bir API, yılda yaklaşık 8,7 saat kesinti anlamına gelir; ödeme veya kimlik doğrulama gibi kritik akışlar bu servise bağlıysa kullanıcı kaybedersin. Rate limit değerlendirmesinde yalnızca dakikalık kotaya değil, saatlik ve aylık kotaya da bak — bazı sağlayıcılar dakikada 60 istek izin verirken aynı günde 10.000 istek üstünü faturalandırıyor.

Fiyatlandırma modelini ürün büyüme senaryosuna karşı simüle et. Per-call modellerde trafik iki katına çıktığında maliyet doğrusal büyür; flat rate modellerde ise büyüme marjı genişler. Stripe gibi hibrit modellerde işlem hacmi arttıkça birim maliyet düşer, ancak aylık minimum taahhüt devreye girebilir. Bu hesabı API'yi entegre etmeden önce bir spreadsheet'te yap; sonradan faturayı görünce değil.

Fallback ve Hata Yönetimi

Bir API çağrısı başarısız olduğunda ürünün ne yapacağını önceden kodla. Netflix'in Hystrix ve Java dünyasında Resilience4j, circuit breaker pattern'inin en yaygın uygulamalarıdır: arka arkaya 5 hata geldiğinde devre "open" konuma geçer, 30 saniye boyunca API'ye istek gitmez ve bu süre zarfında fallback yanıt döner. Kullanıcıya boş ekran yerine önbellekten gelen stale data veya "şu an hizmet verilemiyor" mesajı göstermen çok daha az hasar bırakır.

Stripe webhook'larında signature doğrulaması bu kategorinin somut örneğidir. Her webhook isteğinin Stripe-Signature başlığı HMAC-SHA256 ile imzalanmıştır; bunu doğrulamadan işlem yaparsan replay attack'a açık kalırsın. Stripe'ın SDK'sı constructEvent() metoduyla bunu iki satırda halleder. OpenAI tarafındaysa hem RPM hem de TPM kotasını izlemen gerekir; 429 hatası bu iki limitten biri aşıldığında gelir ve hangisinin dolduğunu response header'dan okuyabilirsin.

Maliyet Optimizasyonu

API maliyetini düşürmenin en pratik yolu aynı isteği tekrar API'ye göndermemektir. Redis'te sonuçları cache'le ve TTL'i servisin veri tazelik beklentisine göre ayarla: hava durumu verisi 15 dakika, döviz kuru 1 saat, kullanıcı profili 24 saat makul eşiklerdir. Bir e-ticaret sepeti sayfasında ürün açıklamaları için her sayfa yüklemesinde OpenAI'ya gidersen token maliyetin günde binlerce dolara ulaşabilir; aynı ürün ID'si için sonucu bir kez üret ve Redis'te sakla.

Fatura kalemlerini anlamak için her API çağrısını bir middleware'de kayıt altına al: hangi endpoint, kaç token, hangi kullanıcı akışından tetiklendi. Bu veriye sahip olunca hangi özelliğin API maliyetinin %60'ını ürettiğini görürsün ve orada cache veya batch işleme uygulamak için somut gerekçen olur. AWS Cost Explorer benzeri bir görünürlük, üçüncü taraf API'ler için de oluşturulabilir — bunun için basit bir log agregasyonu yeterli.

Entegrasyon Test Stratejisi

Gerçek API'ye bağlanmadan tüm senaryoları test etmek için WireMock (JVM) veya nock (Node.js) ile mock sunucu kur. Bu araçlar HTTP istek-yanıt çiftlerini tanımlamanı sağlar; 200 başarılı yanıt, 429 rate limit hatası, 503 servis dışı yanıtı ve 30 saniye geciken timeout senaryolarını testlerde canlandırabilirsin. Gerçek Stripe sandbox'ına gitmek test süresini uzatır ve flaky test riskini artırır; mock'la test süreci hem hızlıdır hem de CI pipeline'a kolayca girer.

Entegrasyon testlerinin kapsaması gereken minimum senaryo seti şöyle özetlenebilir: başarılı yanıt doğru işleniyor mu, hata yanıtı graceful şekilde yönetiliyor mu, timeout durumunda sistem çöküyor mu yoksa fallback devreye giriyor mu. Bu üç senaryoyu her kritik API entegrasyonu için test etmek, production'da müşteriye ulaşan hataların büyük bölümünü engeller. Test coverage'ını CI/CD pipeline'a dahil et ve her PR'da bu testlerin geçmesini zorunlu kıl.

Sık Sorulan Sorular

API uptime SLA'sı neden %99,9 eşiğini geçmeli? %99,9 SLA yılda 8,7 saat kesintiye karşılık gelir. Ödeme veya kimlik doğrulama gibi kritik akışlar bu API'ye bağlıysa, bu süre zarfında tüm kullanıcılar etkilenir; gelir kaybı ve güven hasarı öngörülenden büyük çıkabilir.

Circuit breaker pattern ne zaman kullanılmalı? Dış bir servise bağımlı her kritik akışta kullanılmalı. Özellikle ödeme, bildirim ve kimlik doğrulama entegrasyonlarında API'nin 5 ardışık hata verdiği anda devreyi açmak, kullanıcıya anlamlı bir fallback sunmanı sağlar.

Redis cache TTL nasıl belirlenir? Verinin ne kadar süre sonra bayatladığını belirle: döviz kurları için 1 saat, kullanıcı izinleri için 5 dakika makul başlangıç noktalarıdır. TTL çok uzunsa stale data servise girdiğinde sorun yaratır; çok kısaysa cache'in API maliyetini düşürme etkisi azalır.

WireMock ile nock arasında nasıl seçim yapılır? Proje JVM tabanlıysa WireMock, Node.js tabanlıysa nock doğal seçimdir. Her ikisi de HTTP istek-yanıt çiftlerini tanımlamanı sağlar; fark yalnızca dil ekosistemi ve kurulum kolaylığıdır.

Stripe webhook güvenliği için minimum gereksinim nedir? Her gelen webhook isteğinde Stripe-Signature başlığını Stripe SDK'sının constructEvent() metoduyla doğrula. İmza doğrulaması yapılmadan işlem yapılan bir endpoint replay attack'a açıktır ve sahte ödeme bildirimlerine yol açabilir.

İlgili Türk Ürünleri