Che cos'è un'API REST?
Un'API REST è un' interfaccia di programmazione delle applicazioni (API) che segue i principi di design dello stile architetturale REST. REST è l'acronimo di representational state transfer e indica una serie di regole e linee guida su come creare un'API web.
Che cos'è un'API?
Le API, ovvero interfacce di programmazione delle applicazioni, sono set di definizioni e protocolli con cui vengono realizzati e integrati software applicativi. Talvolta le si definisce come un contratto tra un fornitore di informazioni e l'utente destinatario di tali dati: l'API stabilisce il contenuto richiesto dal consumatore (la chiamata) e il contenuto richiesto dal produttore (la risposta). Ne è un esempio la struttura di un'API di un servizio meteorologico, in cui l'utente invia una richiesta contenente un codice postale alla quale il produttore fornisce una risposta suddivisa in due informazioni, la prima indica la temperatura massima e la seconda la minima.
In sostanza, se si vuole interagire con un computer o un sistema per recuperare informazioni o svolgere una funzione, un'API aiuta a comunicare la richiesta al sistema in modo che questa venga compresa e soddisfatta.
Si può pensare a un'API come a un mediatore tra gli utenti o i client e le risorse o servizi web che vogliono ottenere. Inoltre è un modo per consentire a un'organizzazione di condividere determinate risorse e informazioni con determinati utenti mantenendo la sicurezza, il controllo e l'autenticazione.
Un altro vantaggio di un'API è che non richiede conoscenze specifiche in materia di caching, ovvero il modo in cui le risorse vengono recuperate e quali sono le sorgenti.
REST
REST è un insieme di limitazioni architetturali, non si tratta di un protocollo o uno standard. Gli sviluppatori di API possono implementare REST in vari modi.
Quando un cliente effettua una richiesta tramite un'API RESTful, trasferisce una rappresentazione dello stato della risorsa al richiedente o all'endpoint. Questa informazione, o rappresentazione, viene consegnata in uno dei vari formati tramite HTTP: JSON (Javascript Object Notation), HTML, XLT, Python, PHP, o testo normale. JSON è il formato di file più diffuso perché, a dispetto del nome, è indipendente dal linguaggio e facilmente leggibile da persone e macchine.
Un altro aspetto da considerare: anche intestazioni e parametri sono importanti nei metodi HTTP di una richiesta HTTP di un'API RESTful, poiché contengono informazioni identificative importanti relative a metadati della richiesta, autorizzazione, uniform resource identifier (URI), caching, cookie e altri dati. Sono inclusi intestazioni di richiesta e identificatori di risposta, ciascuno con le proprie informazioni di connessione HTTP e codici di stato.
Affinché un'API sia considerata RESTful, deve rispettare alcuni criteri:
- Un'architettura client-server costituita da client, server e risorse, con le richieste gestite tramite HTTP.
- Comunicazione stateless client-server, così che nessuna informazione sia archiviata tra richieste get e ciascuna richiesta sia separata e non collegata.
- Dati supportati dal caching che semplificano le interazioni client-server.
- Un'interfaccia uniforme tra componenti che consente di trasferire le informazioni in maniera standard. Questo richiede che:
- Le risorse richieste siano identificabili e separate dalle rappresentazioni inviate al client.
- Le risorse richieste possano essere manipolate dal client attraverso la rappresentazione che ricevono poiché la rappresentazione contiene sufficienti informazioni a tale scopo.
- I messaggi autodescrittivi restituiti al client contengano le informazioni necessarie per descrivere in che modo il client deve elaborare l'informazione.
- Siano disponibili ipertesto/ipermedia, il che significa che dopo aver avuto accesso a una risorsa il client dovrebbe essere in grado di usare i collegamenti ipertestuali per trovare tutte le altre azioni attualmente disponibili che può eseguire.
- Un sistema stratificato che organizzi ciascun tipo di server (quelli responsabili per la sicurezza, il bilanciamento dei carichi, ecc.) coinvolto nel recupero delle informazioni richieste in gerarchie, invisibili al client.
- Code-on-demand (facoltativo): l'abilità di inviare codice eseguibile dal server al client quando richiesto, estendendo la funzionalità del client.
Sebbene l'API REST debba conformarsi a questi criteri, è comunque considerata più facile da usare rispetto a un protocollo prescritto come SOAP (Simple Object Access Protocol), che ha specifici requisiti come la messaggistica XML e sicurezza integrata e compliance delle transazioni che lo rendono più lento e pesante.
Al contrario, REST è una serie di linee guida che possono essere implementate secondo necessità, rendendo le API REST più leggere, con maggiore scalabilità, ottimali per l'Internet of Things (IoT) e lo sviluppo di app mobili.
Prova subito Red Hat OpenShift API Management.
Perché scegliere Red Hat?
Red Hat® Integration è una soluzione incentrata su API che fornisce connettività delle applicazioni, trasformazione dei dati, composizione e orchestrazione dei servizi, messaggistica in tempo reale, acquisizione delle modifiche ai dati e gestione delle API in un unico luogo, per connettere applicazioni e dati attraverso un'infrastruttura ibrida. È abbinata a una piattaforma cloud native e una toolchain per supportare il moderno sviluppo di app.
Red Hat 3scale API Management è una componente di Red Hat Integration e aiuta a condividere, distribuire, controllare e monetizzare le tue API su una piattaforma infrastrutturale realizzata per ottenere prestazioni, controllo, sicurezza e crescita. I componenti 3scale sono integrabili in qualsiasi struttura: on premise, nel cloud o in entrambe.