Accedi / Registrati Account
Jump to section

Cos'è un'API REST?

Copia URL

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, ovvero 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.

10 design tips for microservices developers

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 SOAP (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. 

Gli strumenti per l'integrazione disponibili

Red Hat Integration logo

Set completo di tecnologie per l'integrazione e la messaggistica.

Red Hat 3scale API Management

Piattaforma per la gestione delle API.

Un servizio di gestione API gestito per Red Hat OpenShift Dedicated.

Illustration - mail

Ricevi contenuti simili

Iscriviti a Red Hat Shares, la nostra newsletter gratuita.