7 Minuti di lettura
-
July 29, 2022

API e webhook: che cosa sono?

API e webhooks sono due servizi web di cui non possiamo più fare a meno. Ma di cosa si tratta? E quali sono le differenze?
Disegno che rappresenta il flusso di lavoro seguito dalle API e dagli webhook

Le API (Application Programming Interface) e gli webhook sono gli strumenti che regolano la comunicazione su internet e che permettono lo scambio di dati tra le diverse applicazioni presenti sul web.

Si tratta di strumenti simili a un primo sguardo ma in realtà funzionano in modo diverso e sono utilizzati in casistiche differenti.  Le API infatti funzionano con un modello richiesta-risposta mentre gli webhook sono guidati dagli eventi.

In altre parole? Un’API esegue un’azione specifica solamente quando riceve una richiesta. Gli webhook invece eseguono azioni solo quando vengono soddisfatti determinati criteri.

Cosa sono le API?

Partiamo da un esempio: immagina di dover andare alla festa di un tuo amico e di non sapere come vestirti. Per scoprirlo glielo chiedi scrivendogli un messaggio su Whatsapp. A quel punto, il tuo amico ti risponderà spiegandoti il dress code della festa.

Adesso analizziamo questo esempio. Possiamo notare tre cose:

  • Si è verificato uno scambio di informazioni. Infatti, hai chiesto al tuo amico un’informazione importante e lui ti ha fatto avere una risposta;
  • La comunicazione è avvenuta in una lingua comprensibile ad entrambi. Sia tu che il tuo amico avete comunicato in italiano;
  • Lo scambio di informazioni è avvenuto all’interno di un canale di comunicazione. In questo caso, hai deciso di inviare un messaggio di Whatsapp e hai ottenuto una risposta sullo stesso strumento.

Grazie a questa piccola analisi abbiamo identificato una serie di regole che hanno permesso uno scambio di informazioni efficace tra te e il tuo amico. Le API sono esattamente questo: delle regole che servono per effettuare un corretto scambio di informazioni tra applicazioni diverse.

Disegno che rappresenta il funzionamento delle API
Funzionamento delle API

Ogni applicazione, quindi, può definire una serie di regole proprie. Per esempio, è possibile decidere quali dati condividere (contenuto) e in quali luoghi devono avvenire gli scambi di dati (endpoint). Esistono poi delle regole che devono essere condivise da tutte le applicazioni come, ad esempio, il formato dei dati scambiati (che nell’esempio che abbiamo fatto prima è rappresentato dalla lingua comune).

Quando un’applicazione fornisce delle API, consente ad altre applicazioni di accedere ai suoi dati nel momento in cui ne fanno richiesta e, eventualmente, di eseguire ulteriori operazioni come la scrittura di nuovi dati, l’aggiornamento dei dati esistenti o la loro cancellazione. Per fare queste operazioni, le applicazioni devono inviare le proprie richieste a un canale di comunicazione comune, l’endpoint. Questi sono degli indirizzi URL specifici per ogni applicazione senza i quali sarebbe impossibile interagire con le API.

Ora che abbiamo capito cosa sono le API, facciamo un esempio più tecnico. Supponiamo di voler conoscere la lista di tutti gli utenti iscritti a un’applicazione e che questa applicazione metta a disposizione un endpoint che fornisce proprio questa informazione. Possiamo collegarci a questo endpoint, eseguire una richiesta e ottenere i dati di cui abbiamo bisogno in risposta.

Cosa si può fare con i dati ottenuti dalle API? Con questi dati è possibile fare qualsiasi cosa. Potresti, per esempio, costruire un business come ha fatto Trainline, l’algoritmo che calcola il percorso di viaggio migliore e più economico. Trainline, infatti, non possiede i dati delle tabelle orarie ma, per offrire il suo servizio agli utenti finali, utilizza le API dei servizi ferroviari per raccogliere i dati e utilizzarli all’interno del suo algoritmo.

Entra in Academy

Unisciti ai 300+ Makers di Ncode Academy. Inizia a creare.

Cosa sono gli webhook?

Per spiegare cosa sono gli webhook riprendiamo l’esempio che abbiamo fatto per spiegare cosa sono le API: alla festa organizzata dal tuo amico ti sei divertito moltissimo quindi, il giorno dopo, gli chiedi di avvisarti quando ne organizza delle altre. Il tuo amico accetta e il mese dopo ti scrive per avvisarti della sua nuova festa. Questo succede anche il mese successivo, quello dopo ancora e così via. Volendo semplificare, questo è il comportamento di un webhook.

Disegno che rappresenta il funzionamento degli webhook
Funzionamento degli webhook

Quindi, cos’è un webhook? Si tratta di un servizio che consente ad un’applicazione (che nel nostro esempio è rappresentata dell’amico) di inviare dati a una seconda applicazione nel momento in cui si verifica un evento e senza bisogno che ci sia alcuna richiesta esplicita (ad esclusione della configurazione iniziale). Questo servizio ha lo scopo di fornire aggiornamenti in tempo reale alle applicazioni che ne hanno bisogno e di evitare che le applicazioni richiedano ripetutamente i dati attraverso le API. Gli webhook, quindi, sono molto più efficienti rispetto alle API quando si tratta di comunicare la creazione o l’aggiornamento di dati che non vengono modificati spesso.

Facciamo un altro esempio. Immagina, per un momento, di stare aspettando una mail importante e che le notifiche di Gmail non esistano. Cosa faresti in questo caso? Probabilmente controlleresti l’applicazione ogni dieci minuti per vedere se è arrivato qualcosa. Questo è un comportamento davvero poco efficiente ma è proprio qui che arrivano in soccorso gli webhook. Utilizzandoli, infatti, è possibile creare un meccanismo che ti permetterà di ricevere una notifica quando arriva la mail che stai aspettando.

Conclusione

Riassumendo, le API e gli webhook sono due strumenti fondamentali per permettere lo scambio di informazioni sul web che funzionano con due modelli differenti:

  • Richiesta-risposta nel caso delle API;
  • Evento-risposta nel caso degli webhook.

Ora che abbiamo capito di cosa si tratta, come facciamo a capire quale dei due è la soluzione migliore? Dipende. Non esiste un servizio migliore o peggiore in termini assoluti. L’utilizzo delle API e degli webhook dipende esclusivamente dalle esigenze e da ciò che viene messo a disposizione dall’applicazione con cui si vuole interagire. Infatti, sebbene oggi siano sempre meno, non tutte le applicazioni forniscono API o webhook.

Una cosa che però bisogna tenere a mente è che le API non sono sempre gratuite. Per esempio, per utilizzare le API di Google Maps è necessario pagare un prezzo che si basa sul numero di richieste effettuate ogni mese. Inoltre, per accedere ai dati delle API può essere necessario avere permessi particolari come le API Key richieste da Airtable per garantire la sicurezza dei dati.

Copyright © 2022 Ncode. Tutti i diritti riservati. Privacy PolicyCookie PolicyTermini e condizioni