Jump to section

Cos'è un'API REST?

Copia URL

2024: I trend globali della tecnologia

Il settore delle tecnologie ha subito una rapida trasformazione, richiedendo alle organizzazioni di rivedere le proprie priorità per le aree di business più importanti. Come negli scorsi 10 anni, continuiamo a condividere le novità del settore. Nel rapporto Global Tech Trends per il 2024, abbiamo evidenziato le 6 priorità di investimento in ambito tecnologico e non tecnologico e 3 ostacoli al progresso.

Un'API REST, nota anche come API RESTful, è un'interfaccia di programmazione delle applicazioni (API o API web) conforme ai vincoli dello stile architetturale REST, che consente l'interazione con servizi web RESTful. Il termine REST, coniato dall'informatico Roy Fielding, è l'acronimo di REpresentational State Transfer.

Le API, acronimo di Application Programming Interface (interfaccia di programmazione delle applicazioni) sono un insieme di definizioni e protocolli con i quali vengono realizzati e integrati software applicativi. Possono essere considerate 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 al quale il produttore fornisce una risposta in due parti, dove la prima indica la temperatura massima e la seconda la minima.  

Se, in altre parole, si desidera interagire con un computer o un sistema per recuperare informazioni o eseguire una funzione, un'API facilita la comunicazione con il sistema che può così comprendere e soddisfare la richiesta. 

L'API funge quindi da elemento di intermediazione tra gli utenti o i clienti e le risorse o servizi web che questi intendono ottenere. È anche un mezzo con il quale un'organizzazione può condividere risorse e informazioni assicurando al contempo sicurezza, controllo e autenticazione, poiché stabilisce i criteri di accesso. 

L'utilizzo dell'API inoltre non impone all'utente di conoscere le specifiche con cui le risorse vengono recuperate o la loro provenienza.

Il Ministero dell'Agricoltura, dell'Alimentazione e della Marina irlandese crea una soluzione di analisi del testo intelligente per proteggere i dati degli agricoltori.

REST è un insieme di vincoli architetturali, non un protocollo né uno standard. Chi sviluppa API può implementare i principi REST in diversi modi.

Quando una richiesta client viene inviata tramite un'API RESTful, questa trasferisce al richiedente o all'endpoint uno stato rappresentativo della risorsa. L'informazione, o rappresentazione, viene consegnata in uno dei diversi formati tramite HTTP: JSON (Javascript Object Notation), HTML, XLT, Python, PHP o testo semplice. Il formato JSON è uno dei linguaggi di programmazione più diffusi, perché, a dispetto del nome, è indipendente dal linguaggio e facilmente leggibile da persone e macchine. 

Altri aspetti da tenere presenti: anche intestazioni e parametri sono importanti nei metodi HTTP di una richiesta HTTP API RESTful, perché forniscono informazioni per l'identificazione della richiesta quali metadati, autorizzazione, Uniform Resource Identifier (URI), caching, cookie e altro. Esistono intestazioni della richiesta e intestazioni della risposta , ognuna con le proprie informazioni di connessione HTTP e codici di stato.

Affinché un'API sia considerata RESTful, deve rispettare i criteri indicati di seguito:

  • Un'architettura client-server composta da client, server e risorse, con richieste gestite tramite HTTP.
  • Una comunicazione client-server stateless, che quindi non prevede la memorizzazione delle informazioni del client tra le richieste Get; ogni richiesta è distinta e non connessa.
  • Dati memorizzabili nella cache che ottimizzano le interazioni client-server.
  • Un'interfaccia uniforme per i componenti, in modo che le informazioni vengano trasferite in una forma standard. Ciò impone che:
    • le risorse richieste siano identificabili e separate dalle rappresentazioni inviate al client;
    • le risorse possano essere manipolate dal client tramite la rappresentazione che ricevono poiché questa contiene le informazioni sufficienti alla manipolazione;
    • i messaggi autodescrittivi restituiti a un client contengano le informazioni necessarie per descrivere come il client deve elaborare l'informazione;
    • le informazioni siano ipermediali e ipertestuali, ovvero accedendo alla risorsa il client deve poter individuare, attraverso hyperlink, tutte le altre azioni disponibili al momento.
  • Un sistema su più livelli che organizza ogni tipo di server (ad esempio quelli responsabili della sicurezza, del bilanciamento del carico, ecc.) che si occupa di recuperare le informazioni richieste in gerarchie, invisibile al client.
  • Codice on demand (facoltativo): la capacità di inviare codice eseguibile dal server al client quando richiesto, estendendo la funzionalità del client. 

Sebbene l'API REST debba essere conforme a questi criteri, il suo impiego è comunque considerato più semplice rispetto a quello di un protocollo prescrittivo come Anchor textSOAP (Simple Object Access Protocol), che presenta requisiti specifici come la messaggistica XML e la conformità integrata di sicurezza e transazioni, che lo rendono più lento e pesante. 

Al contrario, REST è un insieme di linee guida applicabili quando necessario, il che rende le API REST più rapide, leggere e con una maggiore scalabilità, ottimali quindi per l'Internet of Things (IoT) e lo sviluppo di app mobili

Red Hat® Integration è una soluzione basata sulle API che offre connettività delle applicazioni e trasformazione dei dati, composizione e orchestrazione dei servizi, flussi di messaggistica in tempo reale, acquisizione delle modifiche ai dati e gestione delle API da un'unica posizione, facilitando la connessione di applicazioni e dati tra infrastrutture ibride. Combinata a una piattaforma cloud native e a una toolchain, agevola lo sviluppo applicativo moderno. 

Red Hat 3scale API Management è un componente di Red Hat Integration, che aiuta a condividere, distribuire, controllare e monetizzare le API su una piattaforma infrastrutturale concepita per ottenere prestazioni, controllo, sicurezza e crescita. I componenti 3scale sono integrabili on premise, nel cloud o in altre combinazioni. 

Scopri come sfruttare le interfacce di programmazione delle applicazioni per aggiungere nuove funzionalità e utilizzarle al meglio.

Approfondisci

Articolo

Cos'è un'API?

API è l'abbreviazione di interfaccia di programmazione delle applicazioni (application programming interface), un insieme di definizioni e protocolli per la creazione e l'integrazione di software applicativi.

Articolo

Cos'è un gateway API?

Un gateway API è uno strumento di gestione delle interfacce di programmazione delle applicazioni (API) che si situa tra un client e una raccolta di servizi back end.

Articolo

Perché rivolgersi a Red Hat per la gestione delle API

Le soluzioni API di Red Hat rendono l'infrastruttura informatica agile e riutilizzabile, anche grazie all'interfaccia di gestione che consente di misurare e monitorare tecnologie e processi sfruttandone la scalabilità.

Scopri di più sulle API