Webhook e Polling: cosa sono e quando usarli
Cosa sono i webhook, perché sono diversi dalle API e quando usarli
- Autore: Alessandra Caraffa
- //
- Data: 22/10/2024
- //
- Lettura: 4 min
Col diffondersi delle API per l’automazione dei processi e l’accesso a dati di terze parti, si è fatta strada la possibilità sempre più concreta di gestire il flusso di lavoro in tempo reale. Ciò è vero in particolar modo da quando hanno trovato diffusione i webhook, che permettono di ricevere notifiche in tempo reale dal server ogni volta che si verifica un determinato evento.
Vediamo quindi cos’è un webhook e quando usarlo, non prima di aver accennato alle differenze con il polling API, che è il modo in cui tradizionalmente le applicazioni interagiscono tramite API.
API: webhook VS polling
Il funzionamento delle API si basa su uno schema domanda-risposta: quando si dice che due applicazioni interagiscono tramite API, si fa riferimento proprio a questo processo. Quando un’applicazione vuole ottenere dei dati dall’altra, deve far partire una chiamata (API call) e aspettare la risposta del server.
Webhook e polling sono due possibili soluzioni da applicare alla chiamata API: in breve, si può scegliere di essere informati in tempo reale quando ci sono nuovi dati oppure chiedere aggiornamenti a cadenza regolare.
Nel polling, il client chiede informazioni a cadenza regolare, per esempio ogni ora o ogni 5 minuti, e riceve indietro l’eventuale lista dei nuovi dati. I dati saranno quindi aggiornati con regolarità, ma non in tempo reale. Se non ci sono nuovi dati, inoltre, le chiamate di questo tipo torneranno indietro senza risposta.
Il webhook, al contrario, permette a un’applicazione di ricevere una notifica in tempo reale ogni volta che si verifica un certo evento. In tal modo, il client non deve far altro che aspettare i suoi aggiornamenti.
Pensiamo ai passeggeri di un lungo viaggio in auto: possono chiedere quanto manca ogni mezz’ora, come avviene nel polling, oppure rilassarsi e aspettare di essere avvisati quando si è giunti a destinazione.
Webhook: cos’è e come funziona
Il webhook è una callback HTTP che non necessita di richieste da parte del client. Il “gancio”, infatti, viene attivato quando si verifica un evento specifico (o trigger): la callback, in sostanza, parte automaticamente senza alcun bisogno di richieste da parte dell’app destinataria degli aggiornamenti.
È per questo che il webhook viene chiamato API inversa: invece di andare a estrarre i dati, infatti, questo processo fa sì che i dati possano raggiungere l’app destinataria tramite una notifica push. Ogni volta che si verifica l’evento trigger, la fonte invia una richiesta alla URL configurata a questo scopo. L’applicazione destinataria, così, riceve l’aggiornamento in tempo reale soltanto quando serve: questa è la sostanziale differenza tra webhook e API.
Il webhook può essere utilizzato per la sincronizzazione di dati tanto quanto per la gestione di software gestionali ed e-commerce: grazie a questo strumento, infatti, è possibile comunicare in tempo reale ogni nuovo acquisto online, in modo da aggiornare automaticamente i sistemi di inventario, di fatturazione e di spedizione.
Quando usare i webhook?
I webhook vengono comunemente utilizzati per la sincronizzazione dei dati e per il monitoraggio dei server, ma trovano massiccio impiego anche nei social network, nei siti web di e-commerce e nei dispositivi IoT, che possono comunicare anomalie o malfunzionamenti in tempo reale. Tutto quello che serve è avere a disposizione un endpoint HTTP in grado di ricevere una richiesta POST.
Tra le altre cose, è possibile automatizzare la creazione di post sui social appena si verifica un dato evento (per esempio: la pubblicazione di un nuovo articolo sul blog), oppure inviare notifiche personalizzate legate a eventi specifici come un acquisto online o l’utilizzo di alcune funzionalità del conto corrente bancario.
La possibilità di inviare messaggi in tempo reale a diverse applicazioni permette di semplificare il flusso di lavoro, integrando per esempio i dati di analytics, chat ed altre applicazioni di un sito e-commerce nel proprio CRM.
Webhook: pro e contro
I vantaggi più evidenti dell’uso di webhook possono essere riassunti in poche parole: dati in tempo reale e ottimizzazione delle risorse. A differenza di quanto avviene nel polling, infatti, un webhook invia soltanto i messaggi necessari, cioè quelli attivati dall’evento trigger.
Il webhook è quindi certamente la soluzione migliore per chi ha la necessità di aggiornare i propri dati in real-time, ma è anche un modo per risparmiare centinaia di chiamate API a cui non corrisponde alcun aggiornamento.
Oltre a rendere concreti i rischi legati all’overhead di rete e al raggiungimento del rate limit, infatti, un polling aggressivo che interroga le API di applicazioni web ogni 5-10 minuti si traduce inevitabilmente in un certo costo, che è l’aspetto più visibile di un consumo di risorse inutile.
A differenza del polling, inoltre, il webhook non presenta problemi di scalabilità: non si tratta infatti di raddoppiare o triplicare delle chiamate API, ma semplicemente di gestire un maggior numero di callback.
Una delle maggiori vulnerabilità di questo sistema è nella sua disponibilità: ancora oggi molte applicazioni di terze parti non supportano i webhook, cosa che può frenare in maniera notevole l’integrazione e l’ottimizzazione di sistemi e risorse aziendali.
La piattaforma di Openapi permette di impostare un webhook per ogni chiamata API e di gestire nella maniera più dettagliata le caratteristiche del polling: ciò consente di integrare entrambi i processi nei propri sistemi, scegliendo di volta in volta quello più adeguato allo scopo.