Članki

Kaj je webhook in kako ga uporabljate?

Webhooki omogočajo spletnim aplikacijam interakcijo z uporabo povratnih klicev po meri.

Uporaba webhookov omogoča spletnim aplikacijam samodejno komuniciranje z drugimi spletnimi aplikacijami.

Za razliko od tradicionalnih sistemov, kjer en sistem (subjekt) še naprej poziva drugega sistema (opazovalca) za nekatere podatke, webhooki omogočajo opazovalcu, da samodejno potisne podatke v subjektov sistem, kadar koli se zgodi dogodek.

To odpravlja potrebo po stalnem spremljanju subjekta. Webhooki v celoti delujejo na internetu, zato mora vsa komunikacija med sistemi potekati v obliki sporočil HTTP.

Uporaba webhookov

Webhooki se zanašajo na prisotnost statičnih URL-jev, ki kažejo na API-je v subjektovem sistemu, ki jih je treba obvestiti, ko pride do dogodka v sistemu opazovalca. Primer tega bi bila spletna aplikacija, zasnovana za zbiranje in upravljanje vseh naročil, oddanih na uporabnikovem računu Amazon. V tem scenariju Amazon deluje kot opazovalec, Webapp Custom Order Management pa kot subjekt.

Namesto da bi spletna aplikacija po meri občasno klicala Amazonove API-je, da bi preverila, ali je ustvarjeno naročilo, bi webhook, ustvarjen v spletni aplikaciji po meri, Amazonu omogočil samodejno oddajo novo ustvarjenega naročila v spletni aplikaciji prek registriranega URL-ja. Če želite torej omogočiti uporabo webhookov, mora subjekt imeti določene URL-je, ki sprejemajo obvestila o dogodkih od opazovalca. To zmanjša znatno obremenitev objekta, saj se klici HTTP izvajajo med obema stranema le, ko pride do dogodka.

Sistemi, ki temeljijo na glasovanju, v primerjavi s sistemi, ki temeljijo na webhooku

Ko opazovalec pokliče subjektov webhook, lahko subjekt izvede ustrezno dejanje s temi na novo predloženimi podatki. Običajno se webhooki izvajajo prek zahtev POST na določen URL. Zahteve POST vam omogočajo pošiljanje dodatnih informacij objektu. Poleg tega ga je mogoče uporabiti tudi za prepoznavanje med številnimi različnimi možnimi dogodki, namesto da bi za vsak dogodek ustvarili ločene URL-je webhook.

Potek dela Webhook

Če želite implementirati vhodne webhooke v svoji aplikaciji, morate izvesti naslednje osnovne korake:

  • Razkrijte končno točko API na vašem aplikacijskem strežniku, ki sprejema in obdeluje klice HTTP POST
  • Omogočite dostop do te končne točke potencialnim uporabnikom webhooka. Končna točka API bo poklicala aplikacijo vira podatkov, kadar koli bodo izpolnjeni ustrezni pogoji.
  • Obdelajte podatke POST in vrnite odgovor iniciatorju klica webhook, da prikažete stanje. Ta korak je lahko prisoten ali pa tudi ne.

Webhooks proti API-jem

Tako webhooki kot API-ji imajo cilj vzpostaviti komunikacijo med aplikacijami. Vendar pa obstaja nekaj jasnih prednosti in slabosti uporabe Webhookov pred API-ji za doseganje integracije aplikacij.

Glasilo o inovacijah
Ne zamudite najpomembnejših novic o inovacijah. Prijavite se, če jih želite prejemati po e-pošti.

Webhooki so ponavadi boljše rešitve, če so naslednje točke pomembnejše za implementirani sistem:

  • Če se podatki na strežniku pogosto posodabljajo, so webhooki običajno boljše rešitve, saj so odpravljeni nepotrebni klici API-ja od odjemalca do strežnika. Glede na resthooks.com gre 98,5 % anket o API-jih v nič.
  • Webhooki omogočajo boljše rešitve za sisteme, ki zahtevajo posodobitve podatkov skoraj v realnem času. Ankete API-ja se običajno izvajajo v nastavljenih intervalih, kar lahko prepreči posodobitev podatkov v živo. Pri webhookih se posodobitve pošljejo s strežnika odjemalcu takoj, ko se sproži webhook.

V nekaterih drugih situacijah bi morali imeti uporabo API-ja prednost pred webhooki.

Stvari, ki jih je treba upoštevati

Pomembne stvari, ki jih morate upoštevati pri uporabi API-jev na Webhooks, so:

  • Uporaba API-ja omogoča večjo prilagoditev glede tega, kdaj poizvedovati za podatke iz strežnika in tudi, koliko podatkov poiskati iz strežnika. Količina podatkov, ki jih je treba anketirati, je odvisna od velikosti ankete API-ja. Pri webhookih se strežnik na splošno odloči, kateri podatki in kdaj so poslani.
  • Za sisteme z zelo spremenljivimi podatki (kot so sistemi v realnem času, sistemi interneta stvari itd.) je anketiranje na osnovi API-ja morda boljša možnost, saj za vsak klic API-ja obstaja velika verjetnost uporabnih odgovorov.
  • Možno je, da odjemalec popolnoma prezre podatke, poslane s strežnika prek webhooka, če so končne točke REST brez povezave. Če strežnik nima mehanizma za ponovni poskus takšnih neuspešnih potiskov, se posodobitve podatkov popolnoma izgubijo.

Če se želite spoprijeti z možnostjo izgube podatkov, poslanih s strežnika, ko webhook prekine povezavo, lahko uporabite čakalno vrsto za sporočanje dogodkov, da arhivirate te klice. Primeri platform, ki zagotavljajo takšno funkcionalnost, vključujejo RabbitMQ o Amazonova preprosta čakalna vrsta (SQS). Oba sta zasnovana tako, da delujeta kot vmesni prostor za shranjevanje sporočil, ki preprečuje možnost zgrešenega klica webhook.

Ercole Palmeri

Glasilo o inovacijah
Ne zamudite najpomembnejših novic o inovacijah. Prijavite se, če jih želite prejemati po e-pošti.

Nedavni članki

Založniki in OpenAI podpisujejo sporazume za urejanje pretoka informacij, ki jih obdeluje umetna inteligenca

Prejšnji ponedeljek je Financial Times objavil dogovor z OpenAI. FT licencira svoje vrhunsko novinarstvo ...

April 30 2024

Spletna plačila: Evo, kako vam storitve pretakanja omogočajo večno plačevanje

Milijoni ljudi plačujejo storitve pretakanja in plačujejo mesečne naročnine. Splošno mnenje je, da si…

April 29 2024

Veeam ponuja najobsežnejšo podporo za izsiljevalsko programsko opremo, od zaščite do odziva in obnovitve

Coveware by Veeam bo še naprej zagotavljal storitve odzivanja na incidente kibernetskega izsiljevanja. Coveware bo nudil forenziko in zmogljivosti sanacije ...

April 23 2024

Zelena in digitalna revolucija: kako predvideno vzdrževanje preoblikuje naftno in plinsko industrijo

Prediktivno vzdrževanje revolucionira sektor nafte in plina z inovativnim in proaktivnim pristopom k upravljanju obratov.…

April 22 2024