Home topics Cos'è un'API REST? Cos'è un'API REST?
Esplora la soluzione API REST di IBM Iscriviti agli aggiornamenti sugli argomenti dell'AI
Immagine dell'interfaccia utente per la gestione delle API
Cos'è un'API REST?

Un'API REST (chiamata anche API RESTful o API Web RESTful) è un'application programming interface (API) conforme ai principi di progettazione di stile architetturale REST, o representational state transfer. Le API REST offrono un modo flessibile e leggero per integrare le applicazioni e per connettere i componenti nelle architetture di microservizi.
 

Introdotto per la prima volta nel 2000 dall'informatico Roy Fielding nella sua tesi di dottorato, REST fornisce un livello relativamente elevato di flessibilità, scalabilità ed efficienza per gli sviluppatori. Per questi motivi, le API REST sono emerse come metodo comune per connettere componenti e applicazioni in un'architettura di microservizi.

Sfatare i miti sull'osservabilità

Questo ebook mira a sfatare i miti che circondano l'osservabilità e a mettere in evidenza il suo ruolo nel mondo digitale.

Contenuti correlati

Leggi una guida all'automazione intelligente

Scopri come l'AI ottimizza gli agenti basati su API
Principi di progettazione REST A livello di base, un'API è un meccanismo che consente a un'applicazione o servizio di accedere a una risorsa all'interno di un'altra applicazione o servizio. L'applicazione o il servizio che accede alle risorse è il client e l'applicazione o il servizio che contiene la risorsa è il server. Alcune API, come SOAP o XML-RPC, impongono un framework rigoroso agli sviluppatori. Ma gli sviluppatori possono sviluppare API REST utilizzando praticamente qualsiasi linguaggio di programmazione e supportare una varietà di formati di dati. L'unico requisito è che siano allineati a questi sei principi di progettazione REST, noti anche come vincoli architetturali: Interfaccia uniforme

Tutte le richieste API per la stessa risorsa devono avere lo stesso aspetto, indipendentemente dalla provenienza della richiesta. L'API REST deve garantire che lo stesso dato, ad esempio il nome o l'indirizzo e-mail di un utente, appartenga a un solo URI (Uniform Resource Identifier). Le risorse non devono essere troppo grandi, ma devono contenere tutte le informazioni di cui il cliente potrebbe aver bisogno.

Disaccoppiamento client-server

Nella progettazione di API REST, le applicazioni client e server devono essere completamente indipendenti l'una dall'altra. L'unica informazione che l'applicazione client deve conoscere è l'URI della risorsa richiesta; non può interagire con l'applicazione server in nessun altro modo. Allo stesso modo, un'applicazione server non dovrebbe modificare l'applicazione client se non passandole i dati richiesti via HTTP.

Condizione di stateless

Le API REST sono stateless, il che significa che ogni richiesta deve includere tutte le informazioni necessarie per elaborarla. In altre parole, le API REST non richiedono sessioni lato server. Le applicazioni server non sono autorizzate a memorizzare dati relativi a una richiesta del client.

Possibilità di memorizzazione nella cache

Quando possibile, le risorse dovrebbero essere memorizzabili nella cache sul lato client o server. Le risposte del server devono inoltre contenere informazioni sull'eventuale autorizzazione della memorizzazione nella cache per la risorsa recapitata. L'obiettivo è migliorare le prestazioni sul lato client, aumentando al contempo la scalabilità sul lato server.

Architettura di sistema a livelli

Nelle API REST, le chiamate e le risposte passano attraverso diversi livelli. Come regola generale, non dare per scontato che le applicazioni client e server si connettano direttamente tra loro. Possono esserci diversi intermediari nel ciclo di comunicazione. Le API REST devono essere progettate in modo che né il client né il server possano sapere se comunicano con l'applicazione finale o con un intermediario.

Codice on-demand (facoltativo)

Le API REST di solito inviano risorse statiche, ma in alcuni casi le risposte possono contenere anche codice eseguibile (come gli applet Java). In questi casi, il codice deve essere eseguito solo on-demand.

Come funzionano le API REST

Le API REST comunicano tramite richieste HTTP per eseguire funzioni di database standard come la creazione, la lettura, l'aggiornamento e l'eliminazione di record (insieme di operazioni noto anche come CRUD) all'interno di una risorsa.

Ad esempio, un'API REST utilizzerà una richiesta GET per recuperare un record. Una richiesta POST crea un nuovo record. Una richiesta PUT aggiorna un record e una richiesta DELETE ne elimina uno. Tutti i metodi HTTP possono essere utilizzati nelle chiamate API. Un'API REST ben progettata è simile a un sito web in esecuzione in un browser web con funzionalità HTTP integrata.

Lo stato di una risorsa in un determinato istante, o data/ora, è noto come rappresentazione della risorsa. Queste informazioni possono essere inviate a un client praticamente in qualsiasi formato, tra cui JavaScript Object Notation (JSON), HTML, XLT, Python, PHP o testo semplice. JSON è popolare perché è leggibile sia dagli esseri umani che dalle macchine ed è indipendente dal linguaggio di programmazione.

Anche le intestazioni e i parametri delle richieste sono importanti nelle chiamate API REST perché includono importanti informazioni di identificazione come metadati, autorizzazioni, URI, memorizzazione nella cache, cookie e altro ancora. Le intestazioni di richiesta e le intestazioni di risposta, insieme ai codici di stato HTTP convenzionali, vengono utilizzate all'interno di API REST ben progettate.

 

Best practice delle API REST

Sebbene la flessibilità sia un grande vantaggio della progettazione delle API REST, la stessa flessibilità semplifica la progettazione di un'API che non funziona o funziona male. Per questo motivo, gli sviluppatori professionisti condividono le best practice nelle specifiche delle API REST.

La Specifica OpenAPI (OAS) stabilisce un'interfaccia per descrivere un'API in modo da consentire a qualsiasi sviluppatore o applicazione di scoprirla e di comprenderne appieno i parametri e le funzionalità. Queste informazioni comprendono gli endpoint disponibili, le operazioni consentite su ciascun endpoint, i parametri delle operazioni, i metodi di autenticazione e altro ancora. L'ultima versione, OAS3, include strumenti pratici, come OpenAPI Generator, per la generazione di client API e stub di server in diversi linguaggi di programmazione.

La protezione di un'API REST inizia anche con le best practice del settore. Utilizza algoritmi di hashing per la sicurezza delle password e HTTPS per la trasmissione sicura dei dati. Un framework di autorizzazione come OAuth 2.0 può aiutare a limitare i privilegi delle applicazioni di terze parti.

Utilizzando una data/ora nell'intestazione HTTP, un'API può anche rifiutare qualsiasi richiesta che arrivi dopo un certo periodo di tempo. La convalida dei parametri e i JWT (JSON Web Token) sono altri modi per garantire che solo i clienti autorizzati possano accedere all'API.

Soluzioni correlate IBM API Connect

Gestisci il ciclo di vita delle API su più cloud, incrementa la socializzazione e ottimizza l'impegno di monetizzazione nell'intero ecosistema aziendale con la gestione sicura delle API di IBM API Connect.

Soluzioni di integrazione

Connetti, automatizza e sblocca il potenziale aziendale con le soluzioni di integrazione.

Soluzioni iPaaS

Connetti applicazioni, dati, processi di business e servizi, ospitati on-premise, in un cloud privato o in un ambiente cloud pubblico.

Risorse Cos'è un'API?

Scopri in che modo le application programming interface o API semplificano lo sviluppo e l'innovazione del software consentendo alle applicazioni di scambiare dati e funzionalità in modo semplice e sicuro.

Cos'è la gestione delle API?

Scopri di più sulla gestione delle API e come un'api management platform unificata possa aiutare la tua organizzazione a crescere.

Gartner Critical Capabilities 2023

Leggi il report Gartner Critical Capabilities for Full Lifecycle API Management del 2023 per maggiori dettagli sul motivo per cui Gartner ha riconosciuto IBM come leader.

Fasi successive

Utilizza IBM API Connect per proteggere e gestire le API aziendali durante il loro ciclo di vita. Aiuta te e i tuoi clienti a creare, gestire, proteggere, socializzare e monetizzare costantemente le API aziendali ed è disponibile anche come API management platform altamente scalabile su IBM Marketplace e AWS.

Esplora API connect Prenota una demo live