====== Webhook ====== **Webhook** je automatizovaná zpráva odeslaná z aplikace ve chvíli, kdy nastane určitá událost. Tato zpráva je doručena na konkrétní URL adresu ve formě HTTP požadavku (typicky typu POST) a obvykle obsahuje data ve formátu [[it_encyklopedie:json|JSON]]. ===== 1. Rozdíl mezi API a Webhookem ===== Abychom pochopili přínos Webhooku, musíme ho srovnat s tradičním dotazováním: * **Polling (API):** Vaše aplikace se každých 5 minut ptá: "Mám nový e-mail? ... A teď? ... A teď?". To plýtvá výkonem a zdroji. * **Webhook:** Vaše aplikace jen čeká. Jakmile e-mail dorazí, server odesílatele pošle zprávu: "Tady je nový e-mail!" přímo na vaši adresu. ===== 2. Jak Webhook funguje? ===== Celý proces se skládá ze tří jednoduchých kroků: 1. **Registrace:** V nastavení aplikace (např. GitHub, Stripe, Discord) zadáte svou **Payload URL** (cílovou adresu vašeho skriptu). 2. **Událost (Event):** V aplikaci nastane změna (např. někdo zaplatil fakturu nebo přidal komentář). 3. **Odeslání (POST):** Zdrojová aplikace okamžitě pošle HTTP POST požadavek na vaši URL s podrobnostmi o události. ===== 3. Praktické příklady použití ===== Webhooky jsou základem moderní automatizace a propojenosti služeb: * **E-shopy:** Po zaplacení objednávky pošle platební brána (Stripe/PayPal) Webhook vašemu systému, který automaticky změní stav objednávky na "Zaplaceno". * **CI/CD:** Jakmile vývojář pošle kód do [[it_encyklopedie:git|Gitu]], GitHub pošle Webhook serveru, který okamžitě spustí testování a nasazení aplikace. * **Komunikace:** Když se ve vašem systému objeví kritická chyba, Webhook pošle upozornění přímo do kanálu v **Slacku** nebo **Discordu**. ===== 4. Bezpečnost Webhooků ===== Protože je vaše URL veřejně dostupná na internetu, mohl by na ni kdokoli poslat falešná data. Proto se používají tyto metody ochrany: * **Tajný klíč (Secret):** Zdrojová aplikace k datům přidá digitální podpis (HMAC). Vy si ověříte, že podpis odpovídá vašemu klíči. * **Whitelist IP adres:** Povolíte příjem požadavků pouze z oficiálních adres dané služby. ===== 5. Struktura zprávy (Payload) ===== Typický Webhook vypadá jako text ve formátu JSON. Například upozornění na novou zprávu: { "event": "message.created", "sender": "Jan Novak", "text": "Ahoj, posilam podklady k projektu.", "timestamp": "2025-12-28T15:52:00Z" } > **Tip:** Pro testování Webhooků bez nutnosti psát kód můžete použít nástroje jako **Webhook.site** nebo **Beeceptor**. Ty vám vygenerují dočasnou URL, na které uvidíte přesný obsah zpráv, které vám jiné aplikace posílají. [[it_encyklopedie:it_architektura_rozcestnik|Zpět na Rozcestník]]