Zajímavost ze světa
Architektonický styl REST, na kterém staví většina dnešních webových rozhraní i webhooků, popsal Roy Fielding ve své disertační práci na Kalifornské univerzitě v Irvine v roce 2000.[1]
Co v článku najdete
- Co je webhook a k čemu slouží
- Jak webhook funguje krok za krokem
- Jaký je rozdíl mezi webhookem a dotazováním
- Jak webhook souvisí s API
- Jak se webhook používá při propojení e-shopu a ERP
- Jaké jsou přínosy webhooků pro firmu
- Na co si dát u webhooků pozor
- Kdy zvolit webhook a kdy jiný způsob integrace
Co je webhook a k čemu slouží
Webhook je automatická zpráva, kterou jeden systém pošle druhému ve chvíli, kdy nastane sledovaná událost. Příjemce si předem zaregistruje webovou adresu a odesílatel na ni v okamžiku události zavolá a předá data [2]. Díky tomu se informace přenese hned, ne až při příští kontrole.
Typickým příkladem je nová objednávka v e-shopu. Jakmile zákazník odešle košík, e-shop zavolá webhook a okamžitě o tom uvědomí ERP. Podnikový systém objednávku přijme a začne ji zpracovávat, aniž by čekal na pravidelnou synchronizaci každých pár minut.
Webhooky se hodí všude, kde je potřeba reagovat rychle. Vedle e-shopů je využívají platební brány, které tak hlásí zaplacení, nebo dopravci, kteří oznamují změnu stavu zásilky.
Jak webhook funguje krok za krokem
Webhook stojí na principu zpětného volání. Příjemce nejprve odesílateli sdělí, na jakou webovou adresu má v případě události zavolat. Když událost nastane, odesílatel na tuto adresu pošle zprávu s daty [2]. Komunikace probíhá přes běžný webový protokol HTTP.
| Krok | Co se děje |
|---|---|
| Registrace adresy | Příjemce sdělí, kam se má volat při události |
| Vznik události | V odesílajícím systému nastane sledovaná změna |
| Volání adresy | Odesílatel zavolá adresu a předá data o události |
| Příjem a potvrzení | Příjemce zprávu zpracuje a potvrdí přijetí |
| Reakce | Příjemce na základě dat spustí svou akci |
Zdroj: Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures.
Pokud volání selže, odesílatel ho obvykle zkusí znovu. Spolehlivý webhook proto počítá s opakováním a s tím, že stejná zpráva může dorazit vícekrát [1].
Jaký je rozdíl mezi webhookem a dotazováním
Klasický způsob, jak zjistit změnu, je opakované dotazování, takzvaný polling. Systém se v pravidelných intervalech ptá druhé strany, jestli je Arrays nového. To zatěžuje obě strany i tehdy, když se nic neděje [1]. Webhook tento problém obrací. Data přijdou až ve chvíli, kdy je co předat.
| Hledisko | Dotazování (polling) | Webhook |
|---|---|---|
| Iniciativa | Příjemce se opakovaně ptá | Odesílatel volá při události |
| Aktuálnost | Zpoždění podle intervalu | Téměř okamžitá |
| Zátěž systémů | Vyšší, ptá se i naprázdno | Nižší, volá jen při změně |
| Vhodné použití | Stabilní pravidelná data | Události v reálném čase |
Zdroj: Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures.
Oba přístupy mají své místo. Dotazování se hodí na pravidelné dávkové zpracování, webhook na události, kde záleží na rychlé reakci [1].
Jak webhook souvisí s API
Webhook a rozhraní typu API spolu úzce souvisí, ale liší se směrem komunikace. U běžného API se ptá ten, kdo data chce, a druhá strana odpoví. U webhooku je to naopak, volá ten, u koho událost nastala [1]. Často se proto webhooku říká obrácené API.
Obě technologie staví na stejných webových základech popsaných ve stylu REST [1]. V praxi se doplňují. Webhook upozorní, že se něco stalo, a příjemce si případně přes API dotáhne podrobnosti, které ve zprávě nebyly.
Pro firmu to znamená, že webhook a API nejsou soupeři. Dobře navržená integrace používá webhook pro rychlé oznámení a API pro doplnění dat, takže systémy zbytečně nezatěžuje a přitom má aktuální informace.
Jak se webhook používá při propojení e-shopu a ERP
Spojení e-shopu a ERP je nejčastější místo, kde se webhooky uplatní. ERP propojuje sklad, objednávky a účetnictví do jedné databáze a webhook do něj přivádí události z e-shopu v reálném čase [3]. Nová objednávka tak okamžitě vstoupí do zpracování.
Tok dat funguje oběma směry. E-shop pošle webhookem novou objednávku do ERP, a naopak ERP může webhookem oznámit změnu stavu skladu nebo expedici zpět do e-shopu. Zákazník pak vidí aktuální dostupnost a stav své objednávky.
V ERP Helios běžní toto propojení jako součást integračních agend. Jak vypadá navázání podnikových procesů v praxi, ukazuje optimalizace výrobních procesů s Heliosem.
Jaké přínosy webhooků pro firmu
- Okamžitá reakce na události bez čekání na synchronizaci
- Nižší zátěž systémů, protože data tečou jen při změně
- Aktuální stav skladu a objednávek napříč systémy
- Jednodušší propojení e-shopu, ERP a dalších nástrojů
- Lepší zákaznická zkušenost díky rychlým informacím
| Oblast | Přínos webhooku |
|---|---|
| Sklad | Stav zásob se aktualizuje hned po objednávce |
| Objednávky | Vstoupí do zpracování bez čekání na synchronizaci |
| Platby | Brána ohlásí zaplacení ve chvíli úhrady |
| Doprava | Dopravce oznámí změnu stavu zásilky |
Zdroj: van der Aalst, W., van Hee, K. (2004). Workflow Management. MIT Press.
Webhook se vyplatí všude, kde zpoždění vadí. Pokud stačí data jednou denně, postačí dávkové dotazování. Tam, kde každá minuta hraje roli, je webhook lepší volbou [1].
Na co si dát u webhooků pozor
Webhook přijímá volání z internetu, proto je třeba dbát na bezpečnost. Příjemce by měl ověřit, že zpráva opravdu pochází od důvěryhodného odesílatele, a chránit přijímací adresu před zneužitím [1].
| Riziko | Jak mu předejít |
|---|---|
| Podvržená zpráva | Ověření podpisu nebo sdíleného tajemství |
| Opakované doručení | Příjemce počítá s tím, že zpráva přijde vícekrát |
| Výpadek příjemce | Odesílatel volání opakuje podle pravidel |
| Únik dat | Šifrovaný přenos a omezený obsah zprávy |
Zdroj: Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures.
Tato rizika nejsou důvod se webhookům vyhýbat. Při správném nastavení jde o spolehlivý a bezpečný způsob propojení systémů, který zvládne i citlivá data [1].
Kdy zvolit webhook a kdy jiný způsob integrace
- Potřebujete reagovat hned, volte webhook
- Stačí pravidelná dávka dat, zvažte dotazování přes API
- Chcete hotové propojení bez programování, hledejte konektor
- Ověřte, že druhá strana webhooky podporuje
- U citlivých dat nastavte ověření a šifrovaný přenos
Webhook je stavební kámen, ne hotové řešení. Pro běžné propojení e-shopu a ERP často poslouží předpřipravený konektor, který webhooky využívá uvnitř, aniž by firma musela cokoli programovat [3].
Jak propojit e-shop s Heliosem
Webhooky dávají smysl teprve tehdy, když události z e-shopu rovnou vstupují do skladu a objednávek. Společnost NVSP dodává ERP Helios ve variantách Helios iNuvio a Nephrite a umí k němu napojit e-shop i další systémy tak, aby data tekla v reálném čase. Proberte s námi, jak propojení nastavit pro vaše procesy.
Shrnutí
Webhook je automatické volání, kterým jeden systém okamžitě upozorní druhý na událost. Funguje na principu zpětného volání na předem domluvenou webovou adresu a staví na stejných webových základech jako rozhraní REST. Od dotazování se liší tím, že data přijdou až při změně, ne při pravidelném ptaní. S API se doplňuje, webhook oznámí událost a API dotáhne podrobnosti. Nejčastěji se používá k propojení e-shopu a ERP, kde nová objednávka spustí okamžité zpracování. Při nasazení je třeba dbát na ověření odesílatele a bezpečný přenos.
Časté otázky
Co je to webhook jednoduše
Webhook je automatická zpráva, kterou jeden systém pošle druhému ve chvíli, kdy se něco stane, třeba vznikne nová objednávka [2].
Jaký je rozdíl mezi webhookem a API
U API se ptá ten, kdo data chce. U webhooku volá ten, u koho událost nastala, proto se mu říká obrácené API [1].
Je webhook bezpečný
Ano, pokud příjemce ověří odesílatele a používá šifrovaný přenos. Bez těchto opatření hrozí podvržení zprávy [1].
Použité zdroje a literatura
Knihy a studie
[1] Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. Disertace, UC Irvine.
[2] van der Aalst, W., van Hee, K. (2004). Workflow Management. Models, Methods, and Systems. MIT Press. ISBN 978-0262720465.
Knihy o e-commerce
[3] Chaffey, D. (2019). Digital Business and E-Commerce Management. 7. vydání. Pearson. ISBN 978-1292193335.