Un’API RESTful è uno stile architettonico per un’API (Application Program Interface) che utilizza le richieste HTTP per accedere e utilizzare i dati. Tali dati possono essere utilizzati per OTTENERE, INSERIRE, PUBBLICARE e CANCELLARE tipi di dati, che si riferiscono alla lettura, all’aggiornamento, alla creazione e all’eliminazione di operazioni riguardanti le risorse.
Un’API per un sito web è un codice che consente a due programmi software di comunicare tra loro. L’API indica il modo corretto per uno sviluppatore di scrivere un programma che richiede servizi da un sistema operativo o da un’altra applicazione.,
Un’API RESTful, nota anche come RESTful web Service o REST API, si basa sul representational State Transfer (REST), uno stile architettonico e un approccio alle comunicazioni spesso utilizzati nello sviluppo di servizi web.
La tecnologia REST è generalmente preferita rispetto ad altre tecnologie simili. Questo tende ad essere il caso perché REST utilizza meno larghezza di banda, rendendolo più adatto per un utilizzo efficiente di Internet. Le API RESTful possono anche essere costruite con linguaggi di programmazione come JavaScript o Python.,
Questo articolo è parte di
Guida alla costruzione di un’impresa API strategia
- Che comprende anche:
- 5 principali motivi per adottare un API per la gestione della piattaforma
- 10 API di sicurezza, linee guida e best practice
- API di test lista di controllo e le migliori pratiche
Il RESTO utilizzati dai browser può essere pensato come il linguaggio di internet. Con l’uso del cloud in aumento, le API vengono utilizzate dai consumatori cloud per esporre e organizzare l’accesso ai servizi Web., REST è una scelta logica per la creazione di API che consentono agli utenti di connettersi, gestire e interagire con i servizi cloud in modo flessibile in un ambiente distribuito. Le API RESTful sono utilizzate da siti come Amazon, Google, LinkedIn e Twitter.
Come funzionano le API RESTful
Un’API RESTful interrompe una transazione per creare una serie di piccoli moduli. Ogni modulo affronta una parte sottostante della transazione. Questa modularità offre agli sviluppatori molta flessibilità, ma può essere difficile per gli sviluppatori progettare le loro API REST da zero., Attualmente, diverse aziende forniscono modelli per gli sviluppatori da utilizzare; i modelli forniti da Amazon S3, Cloud Data Management Interface (CDMI) e OpenStack Swift sono i più popolari.
Un’API RESTful utilizza i comandi per ottenere risorse. Lo stato di una risorsa in un dato timestamp è chiamato rappresentazione di una risorsa., Un’API RESTful utilizza le metodologie HTTP esistenti definite dal protocollo RFC 2616, come ad esempio:
- GET per recuperare una risorsa;
- PUT per modificare lo stato o aggiornare una risorsa, che può essere un oggetto, un file o un blocco;
- POST per creare tale risorsa; e
- DELETE per rimuoverla.
Con REST, i componenti in rete sono una risorsa a cui l’utente richiede l’accesso like come una scatola nera i cui dettagli di implementazione non sono chiari. Tutte le chiamate sono stateless; nulla può essere mantenuto dal servizio RESTful tra le esecuzioni.,
formati di Dati REST API supporta sono:
- application/json
- application/xml
- application/x-wbe+xml
- application/x-www-form-urlencoded
- multipart/form-data
Usa
Perché le chiamate sono apolidi, Il RESTO è utile in applicazioni cloud. I componenti stateless possono essere ridistribuiti liberamente se qualcosa non funziona e possono essere ridimensionati per adattarsi alle modifiche del carico. Questo perché qualsiasi richiesta può essere indirizzata a qualsiasi istanza di un componente; non può essere salvato nulla che deve essere ricordato dalla transazione successiva., Ciò rende preferibile REST per l’uso web. Il modello RESTful è utile anche nei servizi cloud perché l’associazione a un servizio tramite un’API consiste nel controllare il modo in cui l’URL viene decodificato. Il cloud computing e i microservizi sono quasi certi di rendere RESTful API design la regola in futuro.
RESTful API Design and Architecture Constraints
RESTful API design è stato definito dal Dr. Roy Fielding nella sua tesi di dottorato del 2000., Per essere una vera API RESTful, un servizio web deve rispettare i seguenti sei vincoli architettonici REST:
- Uso di un’interfaccia uniforme (UI). Le risorse dovrebbero essere identificabili in modo univoco attraverso un singolo URL e solo utilizzando i metodi sottostanti del protocollo di rete, come DELETE, PUT e GET con HTTP, dovrebbe essere possibile manipolare una risorsa.
- Basato su client-server. Ci dovrebbe essere una chiara delineazione tra il client e il server. L’interfaccia utente e le preoccupazioni di raccolta delle richieste sono il dominio del cliente., L’accesso ai dati, la gestione del carico di lavoro e la sicurezza sono il dominio del server. Questo accoppiamento libero del client e del server consente ciascuno di essere sviluppato e migliorato indipendentemente dall’altro.
- Operazioni senza stato. Tutte le operazioni client-server devono essere stateless e qualsiasi gestione dello stato richiesta deve avvenire sul client, non sul server.
- Memorizzazione nella cache delle risorse restful. Tutte le risorse dovrebbero consentire il caching a meno che non sia esplicitamente indicato che il caching non è possibile.
- Sistema a strati. REST consente un’architettura composta da più livelli di server.,
- Codice su richiesta. La maggior parte delle volte, un server invierà rappresentazioni statiche di risorse sotto forma di XML o JSON. Tuttavia, quando necessario, i server possono inviare codice eseguibile al client.
Common REST API challenges
Oltre ai vincoli di progettazione e architettura, gli individui dovranno affrontare alcune sfide con le API REST. Alcuni concetti che possono essere impegnativi possono includere:
- Coerenza degli endpoint paths i percorsi degli endpoint devono essere coerenti seguendo standard web comuni, che possono essere difficili da gestire.,
- API versioning URLs gli URL degli endpoint non devono essere invalidati se utilizzati internamente o con altre applicazioni.
- Tempi di risposta lunghi e troppi dati: la quantità di risorse restituite può aumentare di dimensioni nel tempo, aumentando i tempi di carico e risposta.
- Percorsi di navigazione e posizioni di input utente because poiché REST utilizza percorsi URL per i parametri di input, determinare gli spazi URL può essere difficile.,
- Sicurezza Security che ha molti aspetti da tenere d’occhio, incluso l’uso di:
- HTTPS;
- che blocca l’accesso da indirizzi IP e domini sconosciuti;
- che convalida gli URL;
- che blocca payload inaspettatamente grandi;
- richieste di registrazione; e
- che indaga sugli errori.
- Autenticazione Authentication utilizza metodi di autenticazione comuni come l’autenticazione HTTP basic (che consente una stringa username:password codificata base64), chiavi API, token Web JSON e altri token di accesso. OAuth 2.0, ad esempio, è buono per il controllo degli accessi.,
- Richieste e dati requests le richieste possono avere più dati e metadati di quelli necessari o possono essere necessarie più richieste per ottenere tutti i dati. Le API possono essere regolate per questo.
- API testing can può essere un processo lungo da configurare ed eseguire. Ogni parte del processo può essere lunga o impegnativa. Il test può essere eseguito anche nella riga di comando con l’utilità Curl., Le parti del processo di test che possono essere difficili includono:
- Configurazione iniziale
- Aggiornamenti dello schema
- Combinazioni di parametri di test
- Sequenza Chiamate API
- Convalida parametri di test
- Integrazione di sistema
- Definire i codici di errore e messaggi.
- Con i codici di errore, è più una pratica comune utilizzare codici di errore HTTP standard. Questi sono riconosciuti da clienti e sviluppatori più spesso.
- La gestione degli errori potrebbe non avere un modo per distinguere se una risposta ha successo o meno oltre all’analisi del corpo o al controllo di un errore.,
REST vs. SOAP
REST e Simple Object Access Protocol (SOAP) offrono diversi metodi per richiamare un servizio web. REST è uno stile architettonico, mentre SOAP definisce una specifica del protocollo di comunicazione standard per lo scambio di messaggi basato su XML. Le applicazioni REST possono utilizzare SOAP.
I servizi Web RESTful sono stateless. Un’implementazione basata su REST è semplice rispetto a SOAP, ma gli utenti devono comprendere il contesto e il contenuto trasmessi, poiché non esiste un set standard di regole per descrivere l’interfaccia dei servizi Web REST., I servizi REST sono utili per i dispositivi con profilo limitato, come i dispositivi mobili, e sono facili da integrare con i siti Web esistenti.
SOAP richiede meno codice idraulico-ovvero codice infrastrutturale di basso livello che collega insieme i moduli di codice principale-rispetto alla progettazione dei servizi REST. Il linguaggio di descrizione dei servizi Web descrive un insieme comune di regole per definire i messaggi, le associazioni, le operazioni e la posizione del servizio. I servizi Web SOAP sono utili per l’elaborazione e l’invocazione asincrona.
Cronologia delle API RESTful
Prima di REST, gli sviluppatori utilizzavano SOAP per integrare le API., Per effettuare una chiamata, gli sviluppatori hanno scritto a mano un documento XML con una chiamata di procedura remota (RPC) nel corpo. Hanno quindi specificato l’endpoint e POSTANO la loro busta SOAP sull’endpoint.
Nel 2000, Roy Fielding e un gruppo di sviluppatori decisero di creare uno standard in modo che qualsiasi server potesse parlare con qualsiasi altro server. Ha definito il RIPOSO e i vincoli architettonici spiegati sopra nella sua tesi di dottorato del 2000 presso l’Università della California, Irvine. Queste regole universali rendono più facile per gli sviluppatori di integrare il software.,
Salesforce è stata la prima azienda a vendere un’API come parte del suo pacchetto “Internet as a Service” nel 2000. Tuttavia, pochi sviluppatori sono stati effettivamente in grado di utilizzare la complicata API XML. Quindi eBay ha creato un’API REST, che ha ampliato il suo mercato a qualsiasi sito che potesse accedere alla sua API. Questo ha attirato l’attenzione di un altro gigante dell’e-commerce, e Amazon ha annunciato la sua API nel 2002.
Flickr ha lanciato la propria API RESTful nell’agosto 2004, consentendo ai blogger di incorporare facilmente immagini sui loro siti e feed di social media., Facebook e Twitter hanno entrambi rilasciato le loro API nel 2006, cedendo sotto la pressione degli sviluppatori che hanno raschiato i siti e creato le API “Frankenstein”. Quando Amazon Web Services (AWS) ha contribuito a lanciare il cloud nel 2006, gli sviluppatori sono stati in grado di accedere allo spazio dati in pochi minuti utilizzando l’API REST di AWS e la richiesta di API pubbliche è rapidamente aumentata.
Da allora, gli sviluppatori hanno adottato le API RESTful, utilizzandole per aggiungere funzionalità ai loro siti Web e applicazioni. Oggi, le API REST sono considerate la ” spina dorsale di Internet.”