Che cosa sono le API?
API è l’acronimo di Application Programming Interface (interfaccia di programmazione delle applicazioni).
Un’API è fondamentalmente un insieme di definizioni e protocolli che consentono a due applicazioni di dialogare tra loro. Le API sono i connettori che consentono la maggior parte delle comunicazioni tra le applicazioni web, o app, che utilizziamo oggi.
Ad esempio, se utilizzate le applicazioni sul vostro telefono per controllare il meteo, inviare un messaggio agli amici o trovare il bar più vicino, state utilizzando le API senza nemmeno saperlo.
Le API funzionano comunicando e scambiando dati con altri sistemi. Agiscono come messaggeri tra noi utenti e i sistemi di backend, permettendoci di recuperare i dati che vogliamo, quando li vogliamo.
Supponiamo di dover soggiornare in un hotel, ma di non esserci mai stati prima e di voler utilizzare un’applicazione di navigazione per arrivarci.
Si inseriscono nell’app alcuni dettagli sul viaggio, come l’indirizzo della destinazione, se si va in auto o con i mezzi pubblici ed eventuali preferenze di percorso.
Per fornire un quadro completo della navigazione, l’app controlla diversi servizi, come i dati GPS, le informazioni meteo, gli orari dei trasporti pubblici, i ritardi del percorso, i servizi e così via.
Ecco, la app di navigazione interagirà con tutti questi servizi utilizzando le API.
Ogni richiesta API è generalmente composta da quattro parti principali:
- Un endpoint, ovvero l’indirizzo (URL) a cui inviare la richiesta.
- Un metodo HTTP: I metodi più comuni sono GET, POST, PUT e DELETE.
- GET viene utilizzato per recuperare una risorsa da un server. Può trattarsi di un file, di informazioni o di un’immagine.
- POST è usato per inviare informazioni al server.
- PUT può essere usato per creare o aggiornare una risorsa, ad esempio per creare o aggiornare un record in un database o per aggiornare il contenuto di un file.
- DELETE è usato per cancellare una risorsa, ad esempio una voce del database.
- Un header, che contengono metadati sulla richiesta, come il tipo di contenuto, l’agente utente e così via.
- Il body, che è il corpo del messaggio e contiene i dati che vogliamo inviare, se ce ne sono. In genere, il body viene utilizzato con i metodi POST e PUT.
Nozioni di base sulle API
In termini di software, le API sono un insieme di funzioni e procedure per la creazione di applicazioni che utilizzano i dati e le caratteristiche di altri servizi e applicazioni.
Le API forniscono agli sviluppatori un insieme di strumenti che possono utilizzare per creare le loro applicazioni. Esistono tre tipi principali di API:
- le Open API, che sono disponibili pubblicamente con restrizioni minime per accedervi.
- le Partner API, che necessitano di diritti di accesso specifici per poter essere utilizzate e sono in genere esposte tramite un portale per sviluppatori di API.
- le Internal API, che sono nascoste agli utenti ed utilizzate solo dai sistemi interni. In genere, sono esposte tramite un portale interno per sviluppatori di API per consentire l’autorizzazione al giusto set di API.
Le API possono poi essere implementate in due modi diversi:
- API semplici, che sono disponibili separatamente.
- API composte, in cui più API di dati o servizi sono combinate insieme, consentendo agli sviluppatori di accedere a diverse API alla volta.
I protocolli API
Per poter utilizzare le API in modo efficace, gli sviluppatori devono attenersi a un insieme comune di regole, o protocolli, quando effettuano chiamate API.
Il termine chiamata API si riferisce semplicemente al processo di comunicazione con un’API; in altre parole, una chiamata API è quando i dati vengono inviati e recuperati da un endpoint API.
Esistono tre tipi principali di protocolli API:
- REST: REST è l’acronimo di Representational State Transfer (trasferimento di stato rappresentativo) ed è un’API per servizi web. Fornisce un’interfaccia uniforme, in cui un client e un server comunicano tra loro tramite Hypertext Transfer Protocol (HTTP), utilizzando gli URI (Uniform Resource Identifiers), le comuni operazioni CRUD (Create, Read, Update, and Delete) e, spesso, le convenzioni JSON (JavaScript Object Notation) per lo scambio di dati
- SOAP: SOAP è l’abbreviazione di Simple Object Access Protocol ed è un altro tipo di API per servizi web. Le SOAP API sono state utilizzate fin dagli anni ’90, ma il protocollo è più rigido e pesante di REST, quindi non è molto utilizzato nello sviluppo di API moderne.
- RPC: RPC sta per Remote Procedural Call (chiamata procedurale remota) ed è il tipo più antico e semplice di protocollo API. RPC è un protocollo di richiesta-risposta, in cui un client invia una richiesta a un server remoto per l’esecuzione di una procedura specifica e riceve una risposta. Le RPC API sono molto più difficili da mantenere e aggiornare rispetto alle REST API, quindi non vengono più molto utilizzate nello sviluppo di API moderne.
Cosa sono le REST API?
Le REST API sono diventate lo standard preferito per la creazione di applicazioni che comunicano in rete.
Quando una richiesta dal client viene effettuata tramite una RESTful API, trasferisce un’informazione dello stato della risorsa al richiedente o all’endpoint. Questa informazione, o rappresentazione, viene fornita via HTTP in un formato che può essere:
- JSON (Javascript Object Notation)
- HTML
- XLT
- Python
- PHP
- testo semplice.
JSON è il formato di file più diffuso perché è indipendente dalla lingua ed è leggibile sia dagli esseri umani che dai computer.
Affinché un’API sia considerata RESTful, deve essere conforme a questi criteri:
- Deve avere un’architettura client-server composta da client, server e risorse, con richieste gestite tramite HTTP.
- La comunicazione client-server dev’essere senza stato, il che significa che non vengono memorizzate informazioni sul client tra una richiesta e l’altra e che ogni richiesta è separata e non collegata.
- I dati devono essere memorizzabili nella cache per semplificare le interazioni client-server.
- Deve avere un’interfaccia uniforme tra i componenti, in modo che le informazioni siano trasferite in forma standard.
Sebbene le REST API debbano conformarsi a questi criteri, sono comunque considerate più facili da usare rispetto a protocolli come SOAP (che ha requisiti specifici come la messaggistica XML, la sicurezza e la conformità alle transazioni che lo rendono più lento e pesante).
REST è un insieme di linee guida che possono essere implementate a seconda delle necessità, rendendo le REST API più veloci e leggere, con una maggiore scalabilità, perfette per l’Internet of Things (IoT) e lo sviluppo di applicazioni mobili.