SHIFT >_CODE
← Magazín

Webhooky, nebo dotazování: jak by spolu měly systémy mluvit

Když jeden systém potřebuje vědět o událostech v jiném, existují dva základní přístupy. Vysvětlujeme rozdíl srozumitelně a ukazujeme, jak udělat spolehlivým kterýkoli z nich.

E-shop potřebuje vědět, kdy byla dokončena platba. CRM potřebuje vědět, kdy z webu přišla nová poptávka. Existují dva základní způsoby, jak se jeden systém dozví o událostech v jiném: pravidelně se ptát, nebo dostat zprávu.

Dotazování: pravidelně se ptát

Při dotazování se váš systém každých pár minut ptá druhého: „Je něco nového?“. Je to jednoduché na vývoj a funguje to s téměř každou službou, která má API. Nevýhodou je zpoždění - o události se dozvíte až při další kontrole - a plýtvání: většina dotazů nic nevrátí, ale přesto spotřebovává limity a prostředky.

Webhooky: dostat zprávu

U webhooku druhý systém pošle zprávu na vaši adresu, jakmile se něco stane. Informace dorazí téměř okamžitě a prázdné dotazy odpadají. Cenou je odpovědnost: váš koncový bod musí být dostupný, ověřit, že zpráva opravdu přišla od partnera, a správně ji zpracovat, i když stejná zpráva dorazí dvakrát.

Jak udělat webhooky spolehlivé

Ověřujte podpis nebo tajný klíč, který poskytovatel přikládá ke každé zprávě, aby vám nikdo nemohl poslat podvržené události. Odpovídejte rychle a náročné zpracování provádějte na pozadí, jinak poskytovatel může doručení vyhodnotit jako neúspěšné a zopakovat ho. Ukládejte identifikátor každé zpracované události a duplicity ignorujte. Veďte záznam příchozích zpráv, aby šlo problémy dohledat.

Praktická kombinace

V praxi nejodolnější integrace kombinují oba přístupy. Webhooky doručují události v reálném čase a pravidelná kontrola - například každou hodinu nebo každou noc - porovná stav na obou stranách a zachytí vše, co se ztratilo během aktualizace serveru nebo výpadku poskytovatele.

Ve zkratce

Dotazování je jednoduché, ale pomalejší a plýtvavé; webhooky jsou rychlé, ale vyžadují pečlivost. Používejte webhooky kvůli rychlosti, chraňte je podpisy a kontrolou duplicit a doplňte pravidelné porovnání, aby se žádná událost neztratila.