Přeskočit na obsah

Webhook

Také známé jako: webhook notifikace, callback, událostní notifikace

Webhook je notifikace, kterou systém sám odešle ve chvíli, kdy nastane určitá událost — vznikne objednávka, změní se produkt, aktualizuje se sklad. Nahrazuje pravidelné dotazování: místo aby se integrace ptala „změnilo se něco?", dozví se to, až když se skutečně něco stane.

Kdy webhooky použít

Všude, kde dnes běží pravidelné dotazování. Synchronizace skladu, předávání objednávek do ERP, notifikace o změně produktu. Úspora je dvojí: méně vyčerpaných limitů a data v cíli dřív.

Jak správně postavit přijímací stranu

Tohle je místo, kde se webhooky nejčastěji rozbíjejí, a pravidlo je jednoduché: přijmi, ulož, odpověz. Zpracuj potom.

Odesílající systém obvykle čeká na odpověď jen velmi krátce — u některých platforem jde o jednu vteřinu. Když se v té době pokusíš objednávku rovnou zaúčtovat, časový limit vyprší a odesílatel to vyhodnotí jako neúspěch.

Druhá věc: počítej s opakováním. Když se doručení nepovede, systém to zkusí znovu. Zpracování proto musí být napsané tak, aby dvojí doručení téže události nezaložilo dvě objednávky.

Třetí věc: notifikace obvykle nese jen identifikátory. Detaily si dotáhneš přes API — a to už bez spěchu.

Nejčastější chyby

  • Synchronní zpracování v obsluze webhooku. Vyprší časový limit, odesílatel to opakuje a vzniknou duplicity.
  • Nezajištěná odolnost vůči opakovanému doručení. Tatáž objednávka se zpracuje dvakrát.
  • Chybějící monitoring přijímací strany. Když endpoint spadne, notifikace se ztrácejí a nikdo o tom neví.
  • Ponechání pravidelného dotazování vedle webhooků. Zbytečně vyčerpává limity, které měly webhooky ušetřit.

Shoptet a Upgates

Upgates. Webhooky se spravují výhradně přes API (vytvoření, editace, smazání) a jsou vázané na konkrétního API uživatele — při změně jeho práv se webhook deaktivuje. Volání je POST na nastavenou adresu s JSON tělem obsahujícím seznam identifikátorů; očekává se 200 OK nebo 204 No Content. Časový limit je 1 vteřina — proto na straně příjemce jen uložit a vrátit kód. Při neúspěchu se opakuje každých 5 minut do úspěchu. Maximum je 5000 položek na požadavek, odesílá se poslední úprava položky, bez duplicit, v pořadí create → update → delete. (Ověř aktuální stav.)

Časté otázky

Proč se mi objednávky zpracovávají dvakrát?

Protože zpracování není odolné vůči opakovanému doručení. Systém opakuje notifikace, u kterých nedostal včasnou odpověď — a tvoje strana je bere jako nové události.

Kolik času mám na odpověď?

Velmi málo, u některých platforem jednu vteřinu. Proto se v obsluze webhooku nic nezpracovává, jen ukládá.

Nahradí webhooky pravidelné dotazování úplně?

Ve většině případů ano. Kontrolní dotazování v delším intervalu se ale hodí jako pojistka proti ztraceným notifikacím.

Související pojmy

Další pojmy ze skupiny Feedy & integrace

Ondřej RuhsamE-commerce trendy ze světa, připravené pro Shoptet a Upgates. Konkrétní nastavení, limity a postupy z reálných projektů.

Aktualizováno

Novinky do e-mailu

Po vydání nové případové studie vám přijde 
odkaz.

Odběrem souhlasíte se zpracováním osobních údajů.