web design umbria

Servizi REST: approfondimenti

Curioso, a nostra insaputa vai a sospettare che siamo tutti professionisti di REST (niente a che fare con la spesa al Conad) senza mai averne mai avuto sentore! Quando punto a un indirizzo web che ha delle risorse, dove magari attingo e prelevo dei dati da un database, rispondo a un criterio architetturale di domanda e risposta definito REST. Vediamo la sacra bibbia cosa ci dice in proposito:

Representational State Transfer (REST) è uno stile architetturale per i sistemi distribuiti. L’espressione representational state transfer e il suo acronimo, REST, furono introdotti nel 2000 nella tesi di dottorato di Roy Fielding, uno dei principali autori delle specifiche dell’Hypertext Transfer Protocol (HTTP), e vennero rapidamente adottati dalla comunità di sviluppatori Internet.Il termine REST rappresenta un sistema di trasmissione di dati su HTTP senza ulteriori livelli, quali ad esempio SOAP. I sistemi REST non prevedono il concetto di sessione, ovvero sono stateless, come approfondito successivamente.L’architettura REST si basa su HTTP. Il funzionamento prevede una struttura degli URL ben definita che identifica univocamente una risorsa o un insieme di risorse e l’utilizzo dei metodi HTTP specifici per il recupero di informazioni (GET), per la modifica (POST, PUT, PATCH, DELETE) e per altri scopi (OPTIONS, ecc.). Questo particolare aspetto è approfondito nella sezione “Relazione tra gli URL e i metodi HTTP”

wikipedia

Molto interessante il concetto di stateless, senza stato, ossia senza memoria, come potrebbe ricordare l’uso di una sessione per esempio, dove posso memorizzare delle variabili. E’ bene sottolineare come di fatto REST sia di fatto solo l’architettura che accorpora tutti gli elementi utili per risolvere una richiesta ma non va confuso con RESTFUL che ha a che fare con la costruzione di applicativi web che si basano su API REST per esempio. Per semplificare quando faccio da sviluppatore un CMS basato su operazioni CRUD su un DB, rispondo in pieno a una architettura REST. Quando faccio una richiesta GET magari in locale su XAMP di fatto obbedisco a dei criteri REST in quanto tutte le mie esigenze passano per il protocollo HTTP. I due tennisti sono famosi e si chiamano CLIENT e SERVER. Ajax è fantastico perché dà la possibilità a un tennista di fare più cose, visto che non c’è l’obbligo di aspettare la risposta lungo linea dell’ avversario per fare altro. Parlare con il Server non è un dialogo semplice, il lato back end ha delle formule semantiche molto rigorose, ha bisogno di razionalizzare la richiesta e di mettere in gioco delle intestazioni prima di dare risposte coerenti. Basta citare il famoso SUCCESS 200 di Ajax che ci conferma che la richiesta non solo è stata presa in consegna, ma che avuto regolare esito per la sua regolarizzazione, prima di rilasciare i dati a sostegno delle nostre precise pretese avanzate sull’ interfaccia utente client. Si tratta di un sitema efficiente e semplice centrato sul protocollo HTTP dove abbiamo una risorsa da contattare seguito dalle intestazioni della nostra richiesta e come il migliore dei postini, non ci saranno dubbi sulla prossima consegna dei dati da recapitare una volta riscontrata la correttezza di tutto il processo. Ricordiamo i metodi GET, POST, PUT, READ che molte analogie hanno con le istruzioni SQL (leggere, inserire, aggiornare e cancellare cioé read, insert, update e delete). Cosa vogliamo fare di questi dati? Leggerli? Modificarli? Cancellarli? Insomma per renderla facile eravamo esperti di REST senza esserne consapevoli! Ma allora SOAP che è un altro stile architetturale nella trasmissione dei dati? Quali differenze riscontriamo tra REST e SOAP? A uno dei prossimi post con Umbriaway Consulting!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...