Che cos'è un webhook?
Un webhook è un tipo di API, o interfaccia di programmazione delle applicazioni, che consente a una determinata applicazione web di inviare dati a un'altra applicazione quando si verificano eventi predefiniti. Mentre la maggior parte delle API gestisce scambi di dati bidirezionali tra software diversi basati su richieste degli utenti, i webhook inviano dati in un'unica direzione quando si verificano determinati eventi. Ad esempio, un webhook potrebbe inviare la durata del tempo che un utente ha trascorso su una pagina ogni volta che l'utente lascia la pagina. I webhook possono anche essere chiamati "web callback" o "HTTP Push API".
Gli sviluppatori utilizzano i webhook insieme ad altre API per creare e gestire connessioni tra il proprio software e altre applicazioni. Poiché i webhook inviano dati attivati da eventi, sono tipicamente preferiti rispetto alle API quando lo sviluppatore desidera accumulare dati nel tempo. Al contrario, le API tendono ad essere più utili quando gli sviluppatori vogliono che la condivisione dei dati avvenga in momenti definiti dal comportamento dell'utente. Mentre altri tipi di API fanno richieste di dati e restituiscono un risultato, i webhook attendono passivamente che si verifichino eventi di dati.
Per configurare un webhook, i clienti creano un URL webhook che forniscono al fornitore del webhook. Da quel momento in poi, il webhook fornito invia dati a quell'URL webhook per l'ingestione da parte dell'applicazione del cliente. L'applicazione del cliente convalida le richieste webhook in arrivo per garantire che i dati in arrivo provengano dal fornitore e non rappresentino una minaccia per la sicurezza, quindi riceve i dati.
Come altre API, le informazioni che possono essere monitorate e inviate da un determinato webhook sono governate e comprese sia dal sito host che dal sito cliente tramite documentazione completa. Questo "contratto" reciproco consente a entrambe le parti di proteggere i dati sensibili, poiché un webhook non confezionerà più dati di quelli necessari per soddisfare l'output desiderato dal proprietario del webhook. In questo modo, nessuna delle due applicazioni espone completamente i propri dati o quelli dei propri utenti.
Vantaggi dell'uso dei webhook
- Carico di lavoro ridotto: Gli sviluppatori si affidano ai webhook per fornire alle loro applicazioni software informazioni man mano che si verificano eventi. Piuttosto che monitorare questi eventi da soli, gli sviluppatori possono semplicemente stabilire un flusso di informazioni con un webhook che traccia gli eventi per loro. Questo riduce il carico di lavoro e consente agli sviluppatori di concentrarsi su altri aspetti dei progetti su cui stanno lavorando.
- Operazioni web più fluide: I webhook consentono alle aziende di collegare le loro applicazioni web altrimenti disparate, il che aiuta con la condivisione diretta ed efficiente dei dati tra quei sistemi. Questo migliora la presenza e le prestazioni web di un'azienda aiutando a mantenere le sue app web sincronizzate tra loro automaticamente.
- Notifiche: Quando gli sviluppatori vogliono implementare notifiche per i loro utenti, i webhook forniscono un modo semplice per farlo senza spendere sforzi di sviluppo su forme più robuste di API. I webhook richiedono meno tempo e risorse per essere costruiti e implementati rispetto ad altri tipi di API, quindi servono come soluzione efficiente in casi d'uso come questo.
- Miglioramento delle esperienze utente: Le capacità di condivisione dei dati dei webhook hanno molti casi d'uso, inclusa la capacità di personalizzare e migliorare le esperienze utente basate sulla raccolta dei dati. Ad esempio, un'azienda che analizza i dati sul comportamento degli utenti della sua applicazione web esposti dai webhook può scoprire punti critici nel percorso del cliente e lavorare per risolverli. Allo stesso tempo, le aziende possono utilizzare i webhook per scoprire quali parti delle loro applicazioni web stanno ottenendo il maggior coinvolgimento e capitalizzare su questo.
- Marketing mirato: Allo stesso modo in cui le aziende possono migliorare le esperienze utente analizzando i dati comportamentali esposti dai webhook, gli sforzi di marketing beneficiano di quegli stessi dati e consentono alle aziende di indirizzare annunci a specifici pubblici. Offrendo contenuti agli utenti basati su dati comportamentali e demografici, i marketer ottengono un vantaggio che rende più probabile il coinvolgimento. Le aziende possono quindi continuare a monitorare quel coinvolgimento, creando un ciclo di feedback positivo che massimizza l'efficacia della campagna.
Impatto dell'uso dei webhook
Le aziende di sviluppo software potrebbero essere negativamente influenzate dalla dipendenza dai webhook:
- Rischi per la sicurezza: Le aziende che utilizzano i webhook devono adottare misure per garantire che le loro connessioni non le espongano a vulnerabilità di sicurezza. I clienti dei webhook possono verificare le richieste webhook in arrivo convalidando la firma della richiesta rispetto a quella dell'azienda host. Gli utenti possono anche proteggere con password il loro URL webhook in modo che solo l'host e il cliente abbiano accesso. Queste pratiche aiutano a proteggere da minacce come gli attacchi di spoofing, un tipo di attacco in cui agenti malintenzionati falsificano i dati per assumere l'identità di un host webhook.
- Mancanza di funzionalità: I webhook sono più leggeri rispetto ad altre API, rendendoli uno strumento attraente per gli sviluppatori che cercano di ingerire dati da altre applicazioni web. Tuttavia, la natura facile da implementare dei webhook non li rende automaticamente una soluzione migliore rispetto alle API più robuste. In molti casi, mettere lo sforzo extra per connettere API bidirezionali che possono condividere dati quando vengono fatte richieste API servirà meglio gli sviluppatori rispetto a un webhook. A un certo punto, cercare di forzare i webhook come soluzione praticabile costerà effettivamente tempo e risorse agli sviluppatori.

Adam Crivello
Adam is a research analyst focused on dev software. He started at G2 in July 2019 and leverages his background in comedy writing and coding to provide engaging, informative research content while building his software expertise. In his free time he enjoys cooking, playing video games, writing and performing comedy, and avoiding sports talk.
