Webhook, bir olay gerçekleştiğinde karşı sistemin sizin belirlediğiniz adrese HTTP isteği göndermesidir. Siz sormazsınız, olay olduğunda haber gelir. Ödeme tamamlandığında, koda commit atıldığında veya form gönderildiğinde tetiklenen bildirimlerin çoğu böyle çalışır.
Webhook ile API çağrısı arasındaki fark ne
API çağrısında soru sizden çıkar. Her beş dakikada bir "yeni bir şey var mı" diye sorarsınız ve çoğu cevap boş döner. Webhook'ta yön terstir. Karşı sistem yalnızca olay olduğunda tek bir istek gönderir.
Bu tersine akış üç şeyi değiştirir:
- Gecikme saniyelere iner, sorgu aralığı beklenmez
- Boşa giden istek sayısı düşer
- Sizin uçtaki adresin sürekli ayakta ve erişilebilir olması gerekir
Bir webhook nasıl test edilir
Test edilmesi gereken şey sizin uçtaki davranıştır. Karşı taraftan çıkan isteği zaten sağlayıcı üretir. Sıra şu şekilde işler:
1. Sağlayıcının belgesinden örnek gövdeyi alın ve kendi adresinize aynı gövdeyle POST isteği gönderin.
2. İmza doğrulamasını test edin. Gövde ile birlikte gelen imza başlığı bozulduğunda isteğin reddedildiğini görün.
3. Aynı isteği iki kez gönderin. Sistem aynı olayı iki kez işliyorsa mükerrer kayıt üretiyorsunuz demektir.
4. Uç noktayı kapatıp yeniden açın ve sağlayıcının tekrar deneme davranışını okuyun.
GitHub'ın webhook belgeleri olay tipleri, imza doğrulama ve tekrar gönderim davranışını örnek gövdelerle anlatıyor.
Yerel geliştirme ortamında test ederken ek bir adım gerekir. Sağlayıcının isteği bilgisayarınıza ulaşamayacağı için ya bir tünel aracı kullanılır ya da örnek gövde elle gönderilir. İkinci yöntem imza doğrulamasını da test etmenizi sağlar.
En sık yapılan üç hata
İmza doğrulamayı atlamak, adresi herkese açık bırakır. Yavaş cevap dönmek, sağlayıcının zaman aşımına düşüp isteği tekrar göndermesine yol açar. Mükerrer kontrolü koymamak ise tek ödemeyi iki kayda çevirir.
Bu akışı Lodos nerede kısaltıyor
Uç noktayı denemek, başlıkları değiştirmek ve cevabı incelemek için API Post/Get kullanılır; tekrarlayan tetiklemeler için Automation modülü devreye girer. Geliştirici tarafındaki diğer modüller Developers sayfasında duruyor.
Sınır şurada. Automation ücretsiz Standard planda tek kural ile sınırlı, Basic planda on kural veriyor. Karmaşık tekrar deneme kuyruğu isteyen üretim akışları için hâlâ kendi kodunuzu yazmanız gerekir.
SSS
Webhook güvenli mi? İmza doğrulaması yapıldığında güvenlidir. Doğrulama yoksa adresi bilen herkes sahte olay gönderebilir.
Webhook başarısız olursa ne olur? Çoğu sağlayıcı isteği belirli aralıklarla tekrar gönderir. Tekrar sayısı ve süresi sağlayıcının belgesinde yazar.