Čo je Webhook?
Webhook je mechanizmus, pri ktorom jedna aplikácia automaticky pošle HTTP požiadavku na druhú aplikáciu, keď nastane určitá udalosť. Pojem „webhook" zaviedol programátor Jeff Lindsay v roku 2007. Webhooky fungujú na princípe push notifikácií — namiesto opakovaného dotazovania server sám oznámi zmenu.
Definícia Webhook
Čo je webhook
Webhook je metóda komunikácie medzi webovými aplikáciami, kde zdrojová aplikácia automaticky posiela HTTP callback (zvyčajne POST požiadavku) na vopred nakonfigurovanú URL adresu, keď nastane špecifická udalosť. Pojem webhook odvodil americký programátor Jeff Lindsay v roku 2007 z programátorského pojmu hook (háčik).
Webhooky sú opakom klasického pollingu (opakovaného dotazovania). Namiesto toho, aby sa klient neustále pýtal „stalo sa niečo nové?", server sám aktívne oznámi udalosť klientovi.
Ako webhooky fungujú
- Registrácia — vývojár nakonfiguruje URL adresu (endpoint), na ktorú sa majú posielať notifikácie
- Udalosť — v zdrojovom systéme nastane udalosť (napr. nová platba, push do repozitára, nová objednávka)
- Callback — zdrojový systém pošle HTTP POST požiadavku na zaregistrovanú URL s dátami o udalosti vo formáte JSON
- Spracovanie — prijímajúca aplikácia spracuje dáta a vykoná potrebnú akciu
Webhooky sa bežne zabezpečujú pomocou HMAC podpisov v HTTP hlavičkách — tak ich overujú napríklad GitHub, Stripe a Facebook. Ďalšie metódy zahŕňajú HTTP Basic autentifikáciu alebo vzájomné TLS (mutual TLS).
Praktický príklad
Príklad: Máte e-shop napojený na platobnú bránu Stripe.
Zákazník zaplatí objednávku kartou. Stripe spracuje platbu a okamžite pošle webhook na váš endpoint https://vas-eshop.sk/api/webhook/stripe. Váš server prijme JSON s informáciami o platbe, zmení stav objednávky na „zaplatená" a odošle zákazníkovi potvrdzujúci e-mail — všetko automaticky, bez ručného zásahu.
Často kladené otázky
Čo je webhook a ako funguje?
Webhook je automatická HTTP notifikácia, ktorú jedna aplikácia pošle druhej, keď nastane určitá udalosť. Funguje ako push správa — server aktívne oznamuje zmeny namiesto toho, aby sa klient opakovane pýtal.
Aký je rozdiel medzi webhookom a API?
API vyžaduje, aby klient aktívne posielal požiadavky (pull model). Webhook funguje opačne — server sám aktívne posiela dáta klientovi, keď nastane udalosť (push model).
Ako zabezpečiť webhook?
Najčastejšie sa používa HMAC podpis v HTTP hlavičke — príjemca overí, že webhook naozaj pochádza od deklarovaného odosielateľa. Ďalšie metódy zahŕňajú overenie timestampu (ochrana pred replay útokmi) a mutual TLS.
Kde sa webhooky najčastejšie používajú?
Webhooky sa používajú v platobných systémoch (Stripe, PayPal), CI/CD nástrojoch (GitHub, GitLab), CRM systémoch, chatbotoch a všade tam, kde potrebujete real-time reakciu na udalosti v externom systéme.
Súvisiace pojmy
Potrebujete pomôcť s webom?
Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.