HomeBlogWebhook: cosa sono e perché sono utili per le API
API Basics

Webhook: cosa sono e perché sono utili per le API

Cosa sono i webhook, come funzionano e perché sono fondamentali nelle moderne infrastrutture API

Nel mondo delle applicazioni distribuite e dell’integrazione tra microservizi, l’efficienza nella comunicazione tra piattaforme è un requisito imprescindibile. Così, quello che un tempo richiedeva cicli di richiesta-risposta continui (polling), oggi avviene tramite notifiche inviate in tempo reale da un’applicazione all’altra. 

Ciò è possibile grazie al meccanismo webhook, che permette di inviare automaticamente un aggiornamento all’applicazione di destinazione ogni volta che si verifica un determinato evento in quella d’origine. Così facendo, il webhook consente di costruire un’architettura event-driven che assicura l’immediatezza delle comunicazioni in tempo reale e l’agilità di un sistema estremamente efficiente, in cui avvengono soltanto le interazioni necessarie.

Cos’è un webhook?

Iniziamo dalle definizioni: un webhook è un meccanismo di comunicazione client-server, basato su callback HTTP definite dall’utente, che permette a un’applicazione di inviare una notifica in tempo reale a un’altra app quando si verifica un evento specifico (trigger).

In sostanza, quando si verifica un evento prestabilito nell’applicazione mittente, questa invia automaticamente una richiesta HTTP POST (la "chiamata di ritorno") all'URL fornito dall'Applicazione ricevente (l’endpoint).

Uno degli esempi più classici di webhook è quello legato alla gestione degli ordini degli e-commerce: ogni volta che un cliente completa un acquisto, l’e-commerce invia all'URL del magazzino un webhook, ovvero una richiesta HTTP POST che contiene, nel payload, tutti i dettagli dell’ordine. Così facendo, l’ordine può essere preparato per la spedizione in maniera completamente automatizzata, senza richiedere l’intervento manuale, ma soprattutto può essere gestito in tempo reale.

Come funziona un webhook?

Per comprendere meglio il funzionamento di un webhook, può essere utile analizzare le tre fasi di un'operazione tipica:

  • Evento trigger: si verifica un evento specifico nell’applicazione web (per esempio, un cliente effettua un ordine su un e-commerce);
  • Callback: l’applicazione mittente (in questo caso l’e-commerce) invia una notifica automatica a un URL precedentemente configurato (per esempio: il software che gestisce il magazzino) che contiene tutti i nuovi dati (i dettagli dell’ordine);
  • Ricezione e azione: l’applicazione di destinazione è in ascolto sull’URL impostato. Non appena riceve la richiesta HTTP POST, estrae i dati dal payload ed esegue l’azione programmata (per esempio, crea una nuova riga d’ordine nel magazzino o invia un messaggio al team della logistica).

I webhook sono alla base di diverse applicazioni di uso quotidiano: oltre alla gestione degli ordini sugli e-commerce, i webhook vengono utilizzati per iscrivere i nuovi utenti all’interno dei database e inserire i nuovi clienti in CRM e software di email marketing, ma anche per confermare i pagamenti online, pubblicare automaticamente post sui social e monitorare il funzionamento di siti web e piattaforme in tempo reale.

API vs webhook: che cambia?

La grande differenza tra il meccanismo webhook e il funzionamento delle API classiche, che sono basate sul polling, è nella gestione del tempo. 

Nel modello tradizionale (pull), il client chiede informazioni a cadenza regolare, per esempio ogni minuto, e se ci sono novità riceve in risposta l’eventuale lista dei nuovi dati. 

Il webhook, al contrario, permette di essere aggiornati in tempo reale ogni volta che ci sono nuovi dati, senza dover chiedere aggiornamenti periodici, ovvero comunicando soltanto quando necessario. 

Proprio in virtù di questa differenza cruciale spesso il webhook viene definito “API inversa”: si tratta infatti di un meccanismo “push” contrapposto al modello “pull” delle API classiche. 

Perché i webhook sono utili per le API?

In una moderna architettura API, i webhook sono fondamentali. Rovesciando il modello di comunicazione da pull a push, infatti, potenziano le API permettendogli di operare in modo asincrono e in tempo reale. 

Ciò comporta diversi vantaggi, che possono essere riassunti così:

  • Efficienza e risparmio di risorse: inviando dati solo ed esclusivamente quando c’è un evento rilevante, il webhook riduce drasticamente il numero delle richieste scambiate tra le applicazioni, con conseguente risparmio di banda e risorse CPU su entrambi i server;
  • Comunicazione in tempo reale: la possibilità di comunicare in tempo reale è fondamentale per le applicazioni orientate al cliente (per esempio: pagamenti, iscrizioni, etc.), che richiedono interazioni immediate;
  • Affidabilità delle notifiche: il webhook assicura che il sistema venga notificato nel momento esatto in cui cambia lo stato, una caratteristica vitale per eventi che possono richiedere ore o giorni, come la conferma di un bonifico;
  • Architettura semplificata: utilizzando i webhook, l’applicazione ricevente deve semplicemente esporre un endpoint, senza dover gestire timer e cicli di interrogazione, mentre il mittente deve occuparsi di impostare l’evento trigger.

In sostanza, i webhook trasformano le API, che da fonti passive di dati diventano veri e propri sistemi di notifica attivi.

Webhook e polling nell’architettura API

Il fatto che webhook e polling siano meccanismi opposti non significa che non possano essere usati insieme. Al contrario, i due modelli coesistono pacificamente in migliaia di infrastrutture e spesso sono anche impiegati in modo complementare.

Il polling, per esempio, può essere usato come “pull di verifica”, ovvero per validare il webhook e assicurarsi che lo stato sia confermato oppure per recuperare tutti i dati della risorsa (che potrebbero essere stati omessi nel webhook per ragioni di sicurezza o dimensione).

Webhook e polling coesistono molto di frequente anche all’interno di operazioni asincrone complesse come l’elaborazione di file video. Mentre lo stato intermedio dell’elaborazione viene aggiornato tramite polling, il sistema può prevedere una notifica di completamento al termine dell’elaborazione, cosa che invece avviene tramite webhook.

L’uso combinato di webhook e polling permette di massimizzare l’efficienza (con le notifiche push in tempo reale) pur mantenendo la sicurezza e l’integrità dei dati (grazie ai pull mirati).

Soprattutto nelle integrazioni complesse, l’uso armonizzato di questi due meccanismi può rivelarsi la migliore strategia per bilanciare immediatezza, sicurezza e affidabilità dei processi.

Webhook: cos'è, come funziona e perché nelle API è cruciale
Condividi su