Articoli

Che cos’è un webhook e come si usa?

I webhook consentono l’interazione tra applicazioni basate sul Web tramite l’uso di callback personalizzati.

L’uso dei webhook consente alle applicazioni web di comunicare automaticamente con altre web-app.

A differenza dei sistemi tradizionali in cui un sistema (soggetto) continua a interrogare un altro sistema (osservatore) per alcuni dati, i webhook consentono all’osservatore di inserire automaticamente i dati nel sistema del soggetto ogni volta che si verifica un evento.

Ciò elimina la necessità di un controllo costante da parte del soggetto. I webhook operano interamente su Internet e quindi tutte le comunicazioni tra i sistemi devono avvenire sotto forma di messaggi HTTP.

Utilizzo di webhook

I webhook si basano sulla presenza di URL statici che puntano alle API nel sistema del soggetto che devono essere notificate quando si verifica un evento nel sistema dell’osservatore. Un esempio di ciò potrebbe essere un’app Web progettata per raccogliere e gestire tutti gli ordini effettuati sull’account Amazon di un utente. In questo scenario, Amazon funge da osservatore e la Webapp di gestione degli ordini personalizzati funge da soggetto.

Invece di fare in modo che la webapp personalizzata chiami periodicamente le API di Amazon per verificare la presenza di un ordine creato, un webhook creato nella webapp personalizzata consentirebbe ad Amazon di inviare automaticamente un ordine appena creato nella webapp tramite un URL registrato. Pertanto, per abilitare l’uso dei webhook, il soggetto deve disporre di URL designati che accettano notifiche di eventi dall’osservatore. Ciò riduce un carico significativo sull’oggetto poiché le chiamate HTTP vengono effettuate tra le due parti solo al verificarsi di un evento.

Sistemi basati su polling vs sistemi basati su webhook

Una volta che il webhook del soggetto viene chiamato dall’osservatore, il soggetto può intraprendere l’azione appropriata con questi dati appena inviati. Generalmente, i webhook vengono eseguiti tramite richieste POST su un URL specifico. Le richieste POST consentono di inviare ulteriori informazioni all’oggetto. Inoltre, può anche essere utilizzato per identificare tra una serie di vari eventi possibili invece di creare URL webhook separati per ciascun evento.

Flusso di lavoro webhook

Per implementare i webhook in entrata sulla tua applicazione, devi eseguire i seguenti passaggi di base:

Articoli correlati
  • Esponi un endpoint API sul tuo server delle applicazioni che accetta ed elabora le chiamate HTTP POST
  • Fornire l’accesso a questo endpoint per i potenziali utenti del webhook. L’endpoint API verrà chiamato un’applicazione di origine dati ogni volta che vengono soddisfatte le condizioni pertinenti.
  • Elabora i dati POST e restituisci una risposta all’iniziatore della chiamata webhook per indicare lo stato. Questo passaggio può o non può essere presente.

Webhook e API a confronto

Sia i webhook che le API hanno l’obiettivo di stabilire la comunicazione tra le applicazioni. Tuttavia, ci sono alcuni vantaggi e svantaggi distinti nell’utilizzo di Webhook rispetto alle API per ottenere l’integrazione delle applicazioni.

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

I webhook tendono a essere soluzioni migliori se i seguenti punti sono più rilevanti per il sistema implementato:

  • Se i dati vengono aggiornati frequentemente sul server, i webhook tendono a essere soluzioni migliori in quanto vengono eliminate le chiamate API non necessarie dal client al server. Secondo resthooks.com , il 98,5% dei sondaggi API viene sprecato.
  • I webhook consentono soluzioni migliori per i sistemi che richiedono aggiornamenti dei dati quasi in tempo reale. I sondaggi dell’API vengono generalmente eseguiti a intervalli prestabiliti che potrebbero impedire l’aggiornamento dei dati in tempo reale. Con i webhook, gli aggiornamenti vengono inviati dal server al client non appena il webhook viene attivato.

L’uso dell’API dovrebbe essere preferito rispetto ai webhook in alcune altre situazioni.

Aspetti da considerare

Gli aspetti importanti da considerare per l’utilizzo delle API su Webhook sono:

  • L’uso dell’API consente una maggiore personalizzazione di quando eseguire il polling dei dati da un server e anche di quanti dati eseguire il polling dal server. La quantità di dati di cui eseguire il polling viene regolata tramite la dimensione del polling delle API. Con i webhook, il server generalmente decide i dati e il momento in cui viene inviato.
  • Per i sistemi con dati altamente variabili (come sistemi in tempo reale, sistemi IoT, ecc.), il polling basato su API potrebbe essere un’opzione migliore poiché per ogni chiamata API, esiste un’alta probabilità di risposte utilizzabili.
  • È possibile che i dati inviati da un server, tramite un webhook, vengano completamente ignorati dal client nel caso in cui gli endpoint REST siano offline. Nel caso in cui il server non disponga di un meccanismo per riprovare tali push non riusciti, gli aggiornamenti dei dati vengono completamente persi.

Per affrontare la possibilità di perdere dati inviati da un server quando il webhook è offline, puoi utilizzare una coda di messaggistica degli eventi per archiviare tali chiamate. Esempi di piattaforme che forniscono tale funzionalità includono RabbitMQ o Simple Queue Service (SQS) di Amazon. Entrambi sono progettati per fungere da strutture di archiviazione di messaggistica intermedia che evitano la possibilità di perdere una chiamata webhook.

Ercole Palmeri

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

Articoli recenti

Funzioni statistiche di Excel: Tutorial con esempi, prima parte

Excel fornisce un'ampia gamma di funzioni statistiche che eseguono calcoli dalla media, mediana e moda di base fino alla distribuzione…

1 Ottobre 2023

Tabelle Pivot: cosa sono, come creare in Excel e Google. Tutorial con esempi

Le tabelle pivot costituiscono una tecnica di analisi dei fogli di calcolo. Consentono a un principiante assoluto con zero esperienza…

30 Settembre 2023

The Copyright Trouble

Quello che segue è il secondo ed ultimo articolo di questa newsletter dedicato al rapporto tra Privacy e Copyright da…

30 Settembre 2023

Innovazione per la mobilità elettrica e smart-grid: nuove batterie calcio-ione

Progetto ACTEA, ENEA e Sapienza Università di Roma metteranno a punto le nuove batterie calcio-ione. Le nuove batteria calcio-ione in alternativa a…

30 Settembre 2023

Punti salienti del convegno annuale AOFAS 2023 Ricerca e innovazione ortopedica

Oltre 900 chirurghi ortopedici del piede e della caviglia, operatori sanitari avanzati, specializzandi ortopedici e studenti di medicina hanno partecipato…

28 Settembre 2023

Boom della robotica: nel solo 2022 installati nel mondo 531.000 robot. Stima di crescita del 35% annuo da qui al 2027. IL RAPPORTO PROTOLABS

Secondo l’ultimo report Protolabs sulla robotica destinata alla produzione, quasi un terzo (32%) degli intervistati ritiene che nei prossimi anni…

28 Settembre 2023

CNH premiata agli Agritechnica Innovation Awards per la sua tecnologia in campo agricolo

CNH è fortemente impegnata nello sviluppo della propria tecnologia per rendere l’agricoltura più semplice, efficiente e sostenibile per i suoi…

27 Settembre 2023

NTT e Qualcomm scelgono di collaborare per spingere l’IA oltre i suoi limiti

La mossa strategica faciliterà uno sviluppo più veloce per l'adozione dell'ecosistema privato 5G per tutti i dispositivi digitali NTT svela…

27 Settembre 2023

Neuralink inizia il reclutamento per la prima sperimentazione clinica sull’uomo di un impianto cerebrale

Neuralink, la startup neurotecnologica di proprietà di Elon Musk, ha recentemente annunciato che inizierà a reclutare pazienti per il suo…

26 Settembre 2023

Privacy Loop: le intelligenze artificiali nel labirinto della Privacy e del Copyright

Questo è il primo di due articoli in cui affronto il delicato rapporto tra Privacy e Copyright da un lato,…

26 Settembre 2023