Članci

Šta je webhook i kako ga koristite?

Webhookovi omogućavaju web-baziranim aplikacijama interakciju korištenjem prilagođenih povratnih poziva.

Korištenje webhooks omogućava web aplikacijama da automatski komuniciraju s drugim web aplikacijama.

Za razliku od tradicionalnih sistema u kojima jedan sistem (subjekt) stalno proziva drugi sistem (posmatrača) za neke podatke, webhookovi omogućavaju posmatraču da automatski ubaci podatke u sistem subjekta kad god se dogodi neki događaj.

Ovo eliminiše potrebu za stalnim praćenjem od strane subjekta. Webhookovi rade u potpunosti na Internetu i stoga se sva komunikacija između sistema mora odvijati u obliku HTTP poruka.

Korištenje webhooks-a

Webhookovi se oslanjaju na prisustvo statičkih URL-ova koji upućuju na API-je u sistemu subjekta koji moraju biti obaviješteni kada se događaj dogodi u sistemu posmatrača. Primjer za to bi bila web aplikacija dizajnirana za prikupljanje i upravljanje svim narudžbama postavljenim na korisnički račun na Amazonu. U ovom scenariju, Amazon djeluje kao promatrač, a Webapp za upravljanje prilagođenim narudžbama djeluje kao subjekt.

Umjesto da prilagođena web aplikacija periodično poziva Amazonove API-je kako bi provjerila kreiranu narudžbu, webhook kreiran u prilagođenoj web aplikaciji omogućio bi Amazonu da automatski pošalje novokreiranu narudžbu u web aplikaciji putem registrirane URL adrese. Stoga, da bi se omogućilo korištenje webhok-a, subjekt mora imati određene URL-ove koji prihvataju obavijesti o događajima od promatrača. Ovo smanjuje značajno opterećenje na objektu jer se HTTP pozivi upućuju između dvije strane samo kada se dogodi neki događaj.

Sistemi zasnovani na anketiranju naspram sistema baziranih na webhook-u

Kada posmatrač pozove subjektov webhook, subjekt može poduzeti odgovarajuću radnju s ovim novodostavljenim podacima. Obično se webhookovi rade putem POST zahtjeva za određeni URL. POST zahtjevi vam omogućavaju da pošaljete više informacija objektu. Osim toga, može se koristiti i za identifikaciju između brojnih različitih mogućih događaja umjesto kreiranja zasebnih webhook URL-ova za svaki događaj.

Webhook radni tok

Da biste implementirali ulazne webhookove na svoju aplikaciju, trebate izvršiti sljedeće osnovne korake:

  • Izložite API krajnju točku na vašem poslužitelju aplikacija koja prihvaća i obrađuje HTTP POST pozive
  • Omogućite pristup ovoj krajnjoj točki za potencijalne webhook korisnike. API krajnja tačka će pozvati aplikaciju izvora podataka kad god se ispune relevantni uslovi.
  • Obradite POST podatke i vratite odgovor inicijatoru webhook poziva da naznačite status. Ovaj korak može ili ne mora biti prisutan.

Webhookovi naspram API-ja

I webhookovi i API-ji imaju za cilj uspostavljanje komunikacije između aplikacija. Međutim, postoje neke jasne prednosti i nedostaci korištenja Webhooka u odnosu na API-je za postizanje integracije aplikacije.

Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.

Webhookovi obično budu bolja rješenja ako su sljedeće tačke relevantnije za implementirani sistem:

  • Ako se podaci često ažuriraju na serveru, webhookovi obično budu bolja rješenja jer se eliminišu nepotrebni API pozivi od klijenta ka serveru. Prema resthooks.com, 98,5% API istraživanja odlazi u otpad.
  • Webhookovi omogućavaju bolja rješenja za sisteme koji zahtijevaju ažuriranje podataka skoro u realnom vremenu. API ankete se obično izvode u određenim intervalima koji mogu spriječiti ažuriranje podataka uživo. Sa webhookovima, ažuriranja se šalju sa servera na klijenta čim se webhook pokrene.

Korištenje API-ja bi trebalo imati prednost u odnosu na webhookove u nekim drugim situacijama.

Stvari koje treba razmotriti

Važne stvari koje treba uzeti u obzir za korištenje API-ja na Webhooks-ima su:

  • Korištenje API-ja omogućava više prilagođavanja kada se prozivaju podaci sa servera, kao i koliko podataka se traži sa servera. Količina podataka za ispitivanje je određena veličinom API ankete. Sa webhookovima, server općenito odlučuje o podacima i kada se šalju.
  • Za sisteme sa veoma varijabilnim podacima (kao što su sistemi u realnom vremenu, IoT sistemi, itd.), anketiranje zasnovano na API-ju može biti bolja opcija jer za svaki API poziv postoji velika verovatnoća upotrebljivih odgovora.
  • Moguće je da klijent u potpunosti ignoriše podatke koji se šalju sa servera, preko webhooka u slučaju da su REST krajnje tačke van mreže. U slučaju da server nema mehanizam za ponovni pokušaj takvih neuspjelih guranje, ažuriranja podataka su potpuno izgubljena.

Da biste se nosili s mogućnošću gubitka podataka poslatih sa servera kada webhook pređe van mreže, možete koristiti red za razmjenu poruka za arhiviranje tih poziva. Primjeri platformi koje pružaju takvu funkcionalnost uključuju Rabbit MQ o Amazonova usluga Simple Queue Service (SQS). Oba su dizajnirana da služe kao posredni kapaciteti za skladištenje poruka koji izbjegavaju mogućnost propuštanja webhook poziva.

Ercole Palmeri

Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.

Nedavni članak

Prednosti bojanki za djecu - svijet magije za sve uzraste

Razvijanje finih motoričkih sposobnosti kroz bojenje priprema djecu za složenije vještine poput pisanja. Za bojenje…

2 May 2024

Budućnost je tu: Kako brodarska industrija revolucionira globalnu ekonomiju

Pomorski sektor je prava globalna ekonomska sila, koja je krenula ka tržištu od 150 milijardi...

1 May 2024

Izdavači i OpenAI potpisuju ugovore za reguliranje protoka informacija koje obrađuje umjetna inteligencija

Prošlog ponedjeljka Financial Times je objavio dogovor sa OpenAI. FT licencira svoje novinarstvo svjetske klase…

30 april 2024

Online plaćanja: Evo kako vas usluge striminga čine da plaćate zauvijek

Milioni ljudi plaćaju usluge striminga, plaćajući mjesečne pretplate. Uvriježeno je mišljenje da vi…

29 april 2024