Quando si sviluppano applicazioni Web può capitare di non riuscire ad effettuare il debug delle chiamate HTTP/HTTPS. L’utilizzo delle API (Application Programming Interface) è all’ordine del giorno: si tratta di strumenti preziosissimi che permettono di integrare le applicazioni tra loro.
Il programmatore non deve conoscere puntualmente il funzionamento di ogni aspetto dell’applicazione sulla quale sta lavorando o con la quale sta scambiando dei dati: le API consentono di esporre o inviare le informazioni strettamente necessarie, nel formato auspicato.
Le API hanno assunto un ruolo centrale tra le tecnologie di comunicazione tanto che Cloudflare ha rilevato come siano la tipologia di traffico dati che cresce di più in assoluto.
Chiamate API RESTful
Una chiamata API RESTful viene utilizzata per invocare una specifica funzione: include l’indirizzo di una risorsa (endpoint) e l’azione che si desidera eseguire su tale risorsa (metodo).
Potrebbe essere presente un payload per trasportare dati aggiuntivi e le intestazioni HTTP possono essere utilizzate per aggiungere informazioni sull’origine della chiamata, sull’applicazione che richiede dati, sulle credenziali di autenticazione richieste e così via.
Il metodo può essere ad esempio GET
per recuperare dei dati oppure POST
per inviare delle informazioni e consentirne l’elaborazione.
Webhook: cos’è, come funziona e a che cosa serve
Un Webhook è una tecnologia utilizzata per consentire a due applicazioni di comunicare tra loro in modo automatico, asincrono e in tempo reale.
Un Webhook è un endpoint esposto da un’applicazione Web che assume le fattezze di un normale URL e che può ricevere dati in seguito al verificarsi di uno specifico evento.
Quando l’applicazione invoca un Webhook non attende una risposta ma semplicemente invia i dati all’URL del Webhook e termina l’operazione. Il server che riceve i dati può quindi elaborarli in modo asincrono.
Si tratta di uno schema di comunicazione push in cui l’applicazione decide quanto inviare i dati e su quale URL. Viceversa, con il modello pull dovrebbe essere l’applicazione destinataria dei dati a interrogare l’altra per verificare l’eventuale disponibilità di nuovi dati.
I Webhook sono largamente utilizzati per automatizzare i flussi di lavoro e integrare diverse applicazioni. Un’applicazione di e-commerce potrebbe ad esempio usare un Webhook per informare un’altra applicazione o un altro servizio circa l’arrivo di un nuovo ordine; un’app per la messaggistica istantanea potrebbe richiamare l’URL di un Webhook per notificare la ricezione di un nuovo messaggio.
Debug delle applicazioni Web con RequestBin
RequestBin è un servizio Web gratuito che consente agli sviluppatori di testare e debuggare le richieste HTTP o HTTPS inviate da un’applicazione o un servizio.
Il funzionamento di RequestBin è piuttosto semplice: lo sviluppatore crea un endpoint personalizzato sul sito Web di RequestBin e poi configura la sua applicazione per inviare le richieste HTTP a quello stesso endpoint.
RequestBin si occupa di catturare e visualizzare le richieste in arrivo mostrandone tutti i dettagli come l’URL di origine, i parametri, gli header e il corpo del messaggio.
Per lo sviluppatore Web uno strumento come RequestBin è davvero eccezionale: servendosene è possibile controllare se le richieste sono correttamente formattate e risolvere problemi che non si riescono a “debuggare” a causa della mancata visibilità sulle richieste inviate da un’applicazione.
Differenza tra API e Webhook
Come abbiamo visto per sommi capi, le API consentono di accedere alle informazioni in modo controllato e strutturato, utilizzando chiamate HTTP specifiche.
Webhook è invece un meccanismo di notifica che consente a un’applicazione di inviare informazioni in modo automatico e in tempo reale all’altra applicazione quando si verifica un evento.
Mentre un’API richiede che l’applicazione “client” faccia una richiesta esplicita per accedere ai dati o alle funzionalità, il Webhook invia automaticamente i dati all’applicazione destinataria senza che questa ne faccia richiesta.
Le API, inoltre, sono generalmente utilizzate per accedere a dati e funzionalità di un’applicazione in modo sincrono, mentre i Webhook sono utilizzati per inviare notifiche in modo asincrono all’applicazione destinataria.