Comunicazione dei servizi e concetto dell'API REST
- 24-07-2022
- Toanngo92
- 0 Comments
Mục lục
Introduzione all'API REST
REST è un'architettura stateless , REST viene utilizzato per costruire un'applicazione che comunica in rete, inventata e introdotta nel 2000, fornendo un protocollo per la comunicazione lato macchina client e server. Nella maggior parte dei casi, questa architettura utilizza un protocollo chiamato Hypertext Transfer Protocol (HTTP) per comunicare tra i dispositivi.
Prima dell'introduzione dell'architettura REST, i programmatori utilizzavano architetture di comunicazione complesse con concetti di base come:
- Simple Object Access Protocol (tradotto approssimativamente come protocollo di accesso agli oggetti di base) è abbreviato in SOAP . Vedi di più qui
- Remote Procedure Call (chiamata di procedura remota) è abbreviato in RPC . Vedi di più qui
- Common Object Request Broker Archittechture è abbreviato in COBRA . Vedi di più qui
Comprendiamo temporaneamente che REST è un'architettura leggera utilizzata per i servizi Web. Con molte prospettive diverse, il WWW (world wide web) basato sul protocollo http ha introdotto un'architettura basata su REST. REST è davvero ottimale per Internet poiché le applicazioni che utilizzano il protocollo http sono ancora popolari e potenti. (Se non capisci, immagina quando digiti il nome di dominio web888.vn sul browser, il browser aggiungerà automaticamente http:// o https:// davanti alla stringa del nome di dominio, inoltre, alcuni siti Web aggiungono http :/ /www.tenmien.com, questo significa che il browser imposta il protocollo http come predefinito quando si accede all'applicazione web)
REST risponde a una richiesta lato client su quattro operazioni denominate concettualmente Create, Read, Update, Delete (CRUD). Un'applicazione RESTful invia richieste HTTP (richieste) utilizzate per leggere, aggiungere, aggiornare o eliminare dati. In breve, REST fornisce un'architettura di facile comprensione in modo che possiamo manipolare e personalizzare i dati come vogliamo ed è fornito come funzionalità di libreria standard in linguaggi come C#, Java, Perl ..
Sebbene questa architettura REST sia abbastanza completa, in altre parole, fornisce funzionalità complete, può essere chiamata fare tutto ma queste cose possono essere fatte attraverso quelli che vengono chiamati servizi Web (servizi Web), REST non consigliato dal W3C e non il meccanismo predefinito
Principi REST
Lo stile REST consiste nel definire un insieme di vincoli utilizzati per creare un'architettura di uso comune, questi vincoli sono i principi o le caratteristiche che differenziano le architetture REST dalle altre architetture.
- Comunicazione client-server : sostanzialmente divisa in 2 livelli: client e server sono 2 componenti separati, l'applicazione RESTful assicura che funzionino e aiuta il client (client) a comunicare con il server (server).
- Apolidia : le informazioni sullo stato del client non sono archiviate sul server. In altre parole, ogni richiesta lato client includerà tutte le informazioni necessarie, il server riceve le informazioni ed esegue l'attività. Consente al server di comprendere le attività lato client, lo stato di ciascuna sessione di comunicazione e i dati restituiti al client includono anche le informazioni sulla sessione per ogni richiesta (query). Stelessness aiuta a fornire un meccanismo stretto per comunicare tra il server e il client per raggiungere lo scopo dell'attività
- Cacheability : il client può memorizzare temporaneamente nella cache i dati restituiti e descrivere da solo se i dati sono memorizzabili nella cache o meno, in tal caso, i dati verranno riutilizzati per la risposta successiva per aumentare il tempo di risposta
- Interfaccia uniforme : un'interfaccia standard che semplifica l'interazione con tutti i componenti, semplificando l'interazione con diversi servizi. Aiuta anche a garantire che le modifiche allo sviluppo non influiscano su altri componenti dell'applicazione, con il rovescio della medaglia di non essere in grado di modificare lo standard.
- Sistema a più livelli : un intermediario, come un proxy, che può interrompere la comunicazione tra il client e il server per uno scopo specifico come la sicurezza, il bilanciamento del carico o la memorizzazione nella cache. E il client non sarà in grado di dire se sta comunicando con il server o un intermediario
- Code on demand : questo è un vincolo arbitrario in cui il server estende temporaneamente le funzionalità del client consentendogli di scaricare programmi, che quindi vengono eseguiti sul client. Ad esempio, un client può eseguire codice javascript per interagire con un altro servizio in esecuzione su di esso
Confronta REST e SOAP
Molti programmatori (me compreso) si chiedono perché REST sia più appropriato di SOAP.È davvero difficile per i neofiti perché al giorno d'oggi abbiamo davvero raramente accesso a SOAP. Innanzitutto, è praticamente impossibile confrontare direttamente REST e SOAP, perché SOAP è un protocollo e REST è uno stile architettonico.
Tuttavia, i punti che ci aiutano a valutare tra SOAP e REST sono i seguenti:
Punto di differenza | SAPONE | RIPOSO |
Coerenza tra implementazioni client e server | Legato al server, ad esempio un'applicazione informatica personalizzata, esiste un contratto stretto, che può essere inteso come un vincolo, tra il client e il server, se uno di essi cambia, tutto nel processo di comunicazione sarà interrotto | Un meccanismo liberamente accoppiato come un browser, un client REST è un'applicazione client che condivide metodi e protocolli standardizzati comuni a cui l'applicazione si adatta. Non sono definiti metodi aggiuntivi per violare gli standard del protocollo. le modifiche vengono gestite più facilmente |
Orientamento | Materia | Risorse |
Dimensione | Pesante | Luce |
Stato | Stateful | Apolide |
Standard | Standard di dati chiari | Gli standard dei dati non sono chiari |
velocità | Più lento e consuma più risorse e larghezza di banda per comunicazione | Più veloce, consumando meno larghezza di banda e risorse |
Standard di comunicazione | Linguaggio di markup estensibile (XML) | Usa il controllo dei messaggi per interpretare con molte moderne strutture di dati come XML, testo normale, JSON |
implementazione | Più complicato (difficile) | Più facile |
Cliente | È necessario avere una comprensione completa delle architetture di dati in uso prima di interagire | Nessuna conoscenza API richiesta, ad eccezione del punto di ingresso e del tipo di dati di ritorno |
Risorse nei servizi Web RESTful
Un servizio Web RESTful è un'attività di comunicazione (servizio) nella tecnologia Web che si è evoluta dall'architettura dell'API REST. Ha URI predefiniti ( Uniform Resource Identifier ), che si riferiscono all'azienda per istruire i metodi HTTP.
In RESTful API, tutti i problemi riguardano il concetto (risorsa) può essere tradotto come risorsa, possiamo capire come segue: ogni volta che implementiamo metodi API di direttiva, lavoriamo con risorsa, può essere un documento, un'immagine, un file, un web pagina …. Una risorsa ha un tipo (visualizzabile come dati) contenente dati all'interno, e ha una raccolta di metodi per manipolarla, ed eventualmente avere relazioni con altre risorse.
La risorsa in REST è equivalente al concetto di oggetto nei linguaggi di programmazione orientati agli oggetti, come con il problema della gestione degli studenti, l'aggiunta, la modifica e l'eliminazione di classici nel linguaggio di programmazione C, ogni variabile rappresenta la struttura dei dati dello studente (incluso nome, età, voto ), nei moderni linguaggi di programmazione con una nuova sintassi di stile, è un oggetto. E per aggiungerli e rimuoverli, REST fornisce alcuni metodi di base con il concetto CRUD a cui possiamo avvicinarci. Tuttavia, in pratica, possiamo usare più metodi, ma di solito i seguenti 4 metodi sono appena sufficienti e sufficienti da usare:
- POST (Crea): inizializza una nuova risorsa o in alcune situazioni può essere utilizzato anche per aggiornare una risorsa esistente
- GET:(Read) ottiene una risorsa di sola lettura, normalmente utilizzata per ottenere un oggetto o un elenco di oggetti.
- PUT:(Aggiorna) aggiorna le risorse disponibili
- DELETE: (Elimina) elimina la risorsa
Le risorse (risorsa) possono essere raggruppate completamente in un elenco, ogni elenco è anche una risorsa (risorsa), può essere inteso come tale, questo elenco potrebbe non essere ordinato e ha uniformità, struttura dei dati standard e possiamo utilizzare quei dati per ulteriori elaborazioni nei linguaggi di programmazione come l'analisi in array, la normalizzazione a tipi di dati primitivi, la visualizzazione di interfacce utente .. ..
Un server REST consente l'accesso alle risorse e il client le rappresenta, ogni risorsa ha un identificatore univoco basato sull'URI standard (solitamente un parametro, slug – un elemento del percorso di trasmissione). sul percorso). Ad esempio, un endpoint API come mostrato per rappresentare un endpoint che lavora con una risorsa per gestire le attività (può essere inteso come un oggetto):
Per la rappresentazione delle risorse, REST supporta una varietà di strutture di dati da strict (XML) a modern (JSON) o solo testo normale (PLAINTEXT). Attualmente e per il prossimo futuro JSON è ancora il più popolare quando si utilizzano i servizi web.
Messaggi HTTP
Possiamo interpretare i messaggi HTTP come messaggi di risposta durante la comunicazione con HTTP, il servizio Web RESTful si basa su HTTP per avviare comunicazioni o inviare messaggi quando il client comunica con il server. Durante l'elaborazione del messaggio, il client invia una richiesta HTTP al server, il server restituisce al client un pacchetto chiamato Risposta HTTP, il messaggio di richiesta e risposta contiene il contenuto del messaggio (messaggio) con informazioni sui dati, chiamati metadati. La struttura è la seguente:
Struttura della richiesta HTTP
- Verbo : rappresenta metodi HTTP come GET, DELETE, PUT, POST
- URI : può essere approssimativamente inteso come il percorso di destinazione, identificando la risorsa desiderata per lavorare sul server
- Versione HTTP : rappresenta la versione di HTTP (es. v1.1)
- Intestazione richiesta : contiene i metadati del file, con coppie chiave-valore standard. Ad esempio, i metadati aggiungono alla richiesta informazioni sul browser, la configurazione della cache e il formato per il corpo del messaggio.
- Corpo della richiesta : contiene i dati del messaggio nel formato appropriato
Struttura della risposta HTTP
- Versione HTTP : rappresenta la versione di HTTP (es. v1.1)
- Codice di risposta : 3 caratteri alfanumerici che indicano lo stato della risorsa richiesta. Ad esempio 200 è ok, 404 è risorsa non trovata
- Intestazione della risposta : contiene metadati con messaggio di risposta con coppie chiave-valore, ad esempio il tag dei metadati può includere la lunghezza del contenuto, la data di risposta, il tipo di server, il tipo di contenuto
- Response Body : contiene i dati del file con il formato appropriato
Immagine di esempio dell'intestazione della richiesta,
Codice di risposta | Notificare | Descrivere |
200 | OK | Riuscito |
201 | Creato | Indica che la risorsa desiderata è stata creata o aggiornata correttamente tramite il metodo PUT o POST e restituisce una connessione ad essa tramite l'intestazione della posizione. |
204 | Nessun contenuto | Appare quando il corpo della risposta è bianco. Ad esempio, questo codice verrà visualizzato quando la richiesta DELETE viene eseguita correttamente |
304 | Non modificato | Utilizzare per ridurre l'utilizzo della larghezza di banda se sono presenti richieste GET condizionali, il corpo della risposta è vuoto e le intestazioni hanno metadati come posizione e data |
400 | Brutta richiesta | Indica che l'input lato client contiene dati non validi forniti nella richiesta. Ad esempio, potrebbe avere dati mancanti o parametri inappropriati |
401 | Non autorizzato | Indica che il client non è autorizzato ad accedere (non autenticato) |
403 | Proibito | Indica che si fa clic sul client per eseguire il metodo, ad esempio i codici visualizzati quando il client non dispone dei diritti di amministratore ma desidera eseguire una richiesta DELETE di dati sulla risorsa del server. |
404 | Non trovato | Indica che il metodo non è stato trovato |
409 | Conflitto | Indica che si è verificato un conflitto durante l'esecuzione del metodo richiesto. Ad esempio, questo codice viene visualizzato se il client tenta di aggiungere una risorsa con , ma la risorsa esiste già. |
500 | Errore interno del server | Indica che il server ha rilevato un'eccezione durante l'esecuzione del metodo |
Software utilizzato per accedere
Cliente
Il software Postman può essere utilizzato come client quando si accede all'API REST
server
Con il server, se utilizzi framework per la codifica, ci sarà sicuramente un meccanismo per costruire un'API per il server in base alla struttura del framework, se non hai imparato, puoi rivolgerti ad alcune delle aziende che forniscono API popolari per esercitarti con il client comunicazione, ad esempio:
- Airtable : un sistema di archiviazione di database di righe e colonne con caratteristiche simili a Excel ma più sviluppato, che fornisce un'API per comunicare, modificare, eliminare
- API Mapbox : Free Map fornisce un'API per poter disegnare mappe online
- Openweather: fornisce l'API per ottenere il tempo
- …
L'articolo sopra fornisce i concetti di base quando si utilizza l'API REST per interagire tra client e server, spero che dopo aver letto capirai meglio il concetto di architettura e come utilizzare l'API REST.