Westware Studio
Blog’a dön

2026-05-03 · Yunus Özdemir

3rd Party API entegrasyonunda yapılan 5 yaygın hata

Yıllar içinde gördüğümüz entegrasyon hatalarını ve nasıl önleneceğini derledik.

Her büyük projede bir 3rd party API entegrasyonu vardır. Ödeme servisi, kargo takibi, SMS gateway, harita API'si... Ve neredeyse her projede aynı hatalar tekrarlanır.

1. Idempotency'yi görmezden gelmek

Webhook'lar ve async API çağrıları tekrar gelebilir. Siparişi iki kez işlemek ya da iki kez para çekmek felaket demektir.

Her kritik işlem için benzersiz bir idempotency-key kullanın:

await stripe.paymentIntents.create({
  amount,
  currency: "try",
  idempotencyKey: `order_${orderId}`,
});

2. API hatalarını doğrudan kullanıcıya göstermek

"upstream connect error or disconnect/reset before headers" mesajını son kullanıcı görmemelidir. Hataları yakalayın, anlamlı mesajlara dönüştürün, dahili loglarınıza kaydedin.

try {
  await externalApi.call();
} catch (err) {
  logger.error("external_api.failed", { err });
  throw new UserFacingError("İşlem şu an gerçekleştirilemiyor.");
}

3. Rate limit planlaması yapmamak

Üçüncü taraf API'ların rate limitleri var. Kargo API'sine saniyede 100 istek atmak yasak. Önbelleğe alma ve istek kuyruğu kurulumu baştan planlanmalı.

4. Test ve prodüksiyonda aynı credential'ları kullanmak

Sandbox anahtarlarını .env.local'e koyun. CI'da mock kullanın. Prodüksiyon anahtarları CI ortamına asla çıkmamalı.

5. Webhook imzasını doğrulamamak

Herkese açık bir endpoint oluşturuyorsunuz; bu endpoint'e herkes POST gönderebilir. Her zaman imzayı doğrulayın:

const isValid = stripe.webhooks.constructEvent(
  rawBody,
  signature,
  process.env.STRIPE_WEBHOOK_SECRET!,
);

Entegrasyon mimarinizi güvenli kurmak ister misiniz? Bizimle konuşun.

WhatsApp'tan yaz