Webhook, belirli bir olay gerçekleştiğinde kaydettiğiniz bir URL'ye bir hizmetin gönderdiği bir HTTP isteğidir. Bu, sisteminizin verileri olay gerçekleştiği anda almasını sağlar; böylece bir API'yi sürekli olarak çağırarak yeni bir şey olup olmadığını kontrol etmek zorunda kalmazsınız. Bir veri boru hattında, bu, bir işin kaynağın rapor ettiği olayla hemen tepki verebileceği anlamına gelir.

Örneğin, ödeme platformu Stripe, webhook olaylarını HTTPS üzerinden JSON yükü olarak uç noktanıza gönderir. Uç noktanız POST isteklerini kabul etmeli ve aldığı olay verilerini işlemesi gerekmektedir.

Webhook Teslimatının Çalışma Şekli

Stripe'ın belgeleri ana mekanikleri gösterir:

  • Kaydetme: Bir uç nokta URL'si kaydedersiniz. Canlı modda, Stripe, genel olarak erişilebilir bir HTTPS URL'si gerektirir.
  • Hızlı onay: Uç nokta, zaman aşımına neden olabilecek karmaşık mantıktan önce hızlı bir şekilde 2xx durum kodu döndürmelidir.
  • Yeniden denemeler: Teslimat başarısız olursa, Stripe canlı modda üç güne kadar üssel geri dönüş ile yeniden dener.
  • Sıralama: Stripe, olayların oluşturuldukları sırayla gelmesini garanti etmez.

Bir Webhook Uç Noktasını Güvence Altına Alma

  • İmzaları doğrulayın: Stripe, her olayı SHA-256 kullanarak bir HMAC ile imzalar ve imzayı Stripe-Signature başlığında koyar.
  • Yeniden oynamaları engelleyin: İmzalı yük, bir zaman damgası içerir, böylece çok eski olan olayları reddedebilirsiniz.
  • Yineleri işleyin: Bir uç nokta aynı olayı birden fazla kez alabilir. İşlenmiş olay kimliklerini kaydedin ve tekrarları atlayın.
  • Gönderenleri beyaz listeye alın: Stripe, güvenlik duvarınızı kısıtlayabileceğiniz yayınlanmış bir IP adresleri listesinden webhooks gönderir.

Yaygın Webhook Kullanımları

  • Kod ve dağıtım: GitHub, abone olduğunuz depo olayları için URL'nize bir HTTP POST yükü gönderir. Belgeleri, CI derlemelerini başlatma, harici bir sorun izleyicisini güncelleme, bir yedek ayna yenileme ve üretim sunucusuna dağıtım gibi kullanımları listeler.
  • Ödemeler: Stripe webhooks, bir bankanın bir ödemeyi onaylaması, bir müşterinin bir ücreti itiraz etmesi veya bir tekrarlayan ödemenin başarılı olması gibi asenkron olaylara yanıt vermenizi sağlar.
  • Sadece ihtiyacınız olanlara abone olun: Stripe, ekstra veya tüm olayları dinlemenizi önermez çünkü bu sunucunuza gereksiz bir yük bindirir.

İlgili Terimler