Cos’è una chiamata API

Attraverso una chiamata API un'applicazione web può interrogare un microservizio, ovvero chiedere qualcosa ad altri software: ecco cos’è e come funziona

API Basics

  • Autore: Alessandra Caraffa
  • //
  • Data: 14/04/2022
  • //
  • Lettura: 5 min

La chiamata API è un processo attraverso il quale due software scambiano dati. Quando un’applicazione fa una chiamata API, invia ad un’altra applicazione una richiesta specifica che viene ricevuta e processata da una API. 

Per comprendere cos’è e come funziona una chiamata API bisogna prima chiarire la natura e il ruolo delle API - Application Programming Interfaces: vediamo quindi cosa sono le API, cos’è una chiamata API e, più nel dettaglio, come avviene l’interazione tra un’applicazione e un’altra tramite chiamata API.

Cosa sono le API e come funzionano

Le API sono elementi di una struttura intermedia che permette a diverse applicazioni web di comunicare tra di loro. Nei software che ne dispongono, le API si occupano di esporre alcuni dati verso l’esterno, in modo che le informazioni possano essere condivise con le altre applicazioni che ne facciano richiesta.

Le API nell’architettura per microservizi

Il mondo del software ha da qualche anno abbandonato il tradizionale approccio “monolitico” per rivolgersi verso una nuova architettura delle applicazioni web, basata invece su microservizi indipendenti.

Ciò significa che oggi, quando si usa per esempio un social network, non si interagisce con un enorme software che gestisce tutte le richieste dell’utente, ma con una nutrita schiera di piccoli programmi che funzionano autonomamente: il login, la chat, etc. - in uno schema per cui ogni diversa funzione richiama un servizio.

All’interno di un’architettura fondata sui microservizi, le API sono l’elemento base della comunicazione tra software. Le applicazioni espongono verso l’esterno i servizi che vogliono condividere con altri tramite le API - piccoli operatori che restano in attesa di essere interrogati, ovvero di ricevere una chiamata API.

Il compito delle API è quello di ascoltare, verificare la validità delle comunicazioni e fornire una risposta ad ogni richiesta valida in entrata. 

Cos’è una chiamata API?

La chiamata API è l’operazione attraverso la quale un’applicazione web interroga un microservizio, ovvero chiede qualcosa a un altro software. 

Si fa una chiamata API, per esempio, ogni volta che si fa login o si inseriscono i dati della propria carta di credito per completare un pagamento, ma anche ogni volta che si fa una ricerca su Google o si sceglie un film su Netflix.

Quel che succede durante una chiamata API, dal punto di vista di un’applicazione che richiede servizi ad un altro software, è più o meno quel che avviene nello schema più classico della comunicazione. 

Nell’ambito dello scambio di informazioni tra applicazioni le API sono il medium, ovvero il mezzo di comunicazione che permette lo scambio di informazioni tra un software mittente, che in questo caso è il richiedente o client, e il programma destinatario, o server.

In questo senso la chiamata API è alla base dell’architettura per microservizi: le API sono i singoli “ricevitori” in attesa di chiamata, mentre la chiamata API è il processo che definisce il ruolo delle API nell’interazione tra software

Quanto al messaggio inteso in senso stretto, invece, sono diverse le richieste che possono essere fatte tramite chiamata API.

Le chiamate API Rest: i predicati

Tra i possibili approcci all’architettura per microservizi, il più diffuso è quello denominato RESTful o Rest, una sorta di standard “esteso” per aderire al quale è richiesto il rispetto di determinati vincoli strutturali (es. la manipolazione delle risorse tramite rappresentazioni o l’autodescrittività dei messaggi).  

I vari tipi di richiesta API oggi più diffusi corrispondono a 5 possibili predicati HTTP tipici dell’approccio architetturale Rest:

  • GET: l’applicazione richiede di avere informazioni ad un’altra;
  • POST: si richiede la creazione di una nuova informazione;
  • PUT: si richiede che l’informazione venga sostituita per intero;
  • PATCH: si richiede la modifica di parte dell’informazione;
  • DELETE: l’applicazione richiede che venga eliminata un’informazione. 

Elementi di una chiamata API Rest

All’interno di una struttura per microservizi di tipo Rest, utto ciò che intercorre tra la richiesta del client e la risposta del server si svolge su un layer intermedio che si trova tra l’applicazione e il server (le API rientrano non a caso nel cosiddetto middleware). Qui si trovano anche gli elementi che costituiscono una API call, ovvero:

  • Endpoint: è l’indirizzo “fisico” delle API, il punto da cui il server Rest è in ascolto, in attesa di richieste. Generalmente l’endpoint descrive la sua funzione, es. /film contiene la lista dei film che può essere interpellata tramite chiamata API;
  • Metodo: si chiama metodo il tipo di richiesta formulabile tramite i verbi HTTP GET, POST, PATCH, etc.;
  • Headers: sono dettagli che le applicazioni si scambiano ai fini della comunicazione, sia in fase di richiesta che in fase di risposta. Tra gli header più comuni in chiamata c’è “host”, che richiede l’IP da cui origina la richiesta;
  • Dati, o corpo del messaggio: è il contenuto dell’interazione tra applicazioni, contiene le informazioni che si intendono far passare da un programma all’altro. Questa opzione si usa soltanto con i verbi POST, PUT, PATCH.

Uno dei vincoli tipici dell’approccio Rest riguarda il rapporto server-client: le due applicazioni devono poter evolvere separatamente, senza alcuna relazione di interdipendenza. Per poter comunicare, cioè, le applicazioni server e client devono conoscere solo ed esclusivamente l’URL della risorsa, cioè la strada per raggiungerla. 

Cosa succede durante una chiamata API Rest

In questo senso, l’aspetto di una chiamata API Rest corrisponde con la URL della risorsa: la chiamata viene eseguita interpellando direttamente l’endpoint da cui ci si aspetta risposta, ovvero invocando un determinato URL. 

Ammesso che l’endpoint sia corretto, come prima cosa il client verifica le opzioni disponibili tramite il cosiddetto Pre-flight, una richiesta preventiva che permette di conoscere i metodi di comunicazione a disposizione e il tipo di autenticazione necessario per l’esecuzione della chiamata (spesso username e password o un secret token). 

L’applicazione che riceve la chiamata API risponde con una lista dei predicati disponibili e con eventuali altri requisiti. Il client formula la richiesta API; se è valida, l’API comunica al programma esterno la richiesta, e una volta ricevuta risposta distribuisce i dati al programma che li aveva richiesti. 

La chiamata API è immediata e sincrona: una volta interpellata una API, l’applicazione client interrompe le proprie chiamate finché non riceve risposta o un messaggio di time-out.

 

Accedi a dati affidabili e di alta qualità!

Scopri gli oltre 380 services

del Marketplace Openapi.com

SCOPRI ORA

Cos’è una chiamata API e come funziona

Condividi su: