La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

REST Il paradigma REST è basato su un protocollo di comunicazione stateless, client-server, chacheable e scalabile, tipicamente HTTP (ma non necessariamente,

Presentazioni simili


Presentazione sul tema: "REST Il paradigma REST è basato su un protocollo di comunicazione stateless, client-server, chacheable e scalabile, tipicamente HTTP (ma non necessariamente,"— Transcript della presentazione:

1 REST Il paradigma REST è basato su un protocollo di comunicazione stateless, client-server, chacheable e scalabile, tipicamente HTTP (ma non necessariamente, in realtà). Elementi fondamentali di un Web Services basato sull'architettura REST: Risorse Rappresentazione delle risorse Operazioni sulle risorse

2 RISORSE Un servizio RESTful gestisce un insieme di risorse Esempio: nel nostro sistema di carSharing le risorse potranno essere gli utenti le auto, i viaggi Una risorsa può rappresentare una collezione di altre risorse Esempio: una risorsa potrà essere un insieme di viaggi che corrispondono a un criterio di ricerca

3 RISORSE Ogni risorsa è identificata attraverso un URL specifico Esempio: Insieme auto di un utente Singola auto Possiamo definire una regola generale nella definizione delle URL: usare pochi tipi di risorse scegliere i tipi di risorse tra concetti di basso livello,mentre concetti più complessi sono costruiti dal client mediante regole proprie.

4 Rappresentazioni Ciascuna risorsa può avere più rappresentazioni diverse Ad esempio la nostra applicazione potrebbe fornire una rappresentazione di un auto: in formato HTML per la visualizzazione da parte di una pagina web pdf per la stampa json per essere utilizzata da un altra applicazione.

5 Operazioni Nellapproccio REST si usa un numero limitato di operazioni per leggere o modificare lo stato delle risorse Le operazioni corrispondono ai metodi definiti nel protocollo HTTP Non tutte le operazioni sono disponibili su tutte le risorse operazioneMetodo Http Creazione nuova risorsa idempotente: Sostituzione risorsa esistente PUT Creazione nuova risorsa Modifica (valori) risorsa preesistente POST Cancellazione risorsaDELETE Accesso (visualizzazione, etc) alla risorsa GET

6 Richiesta HTTP Una richiesta HTTP contiene: lURL della risorsa a cui è riferita loperazione da effettuare (es. GET) informazioni aggiuntive (headers), ad esempio per indicare il tipo di rappresentazione richiesta per alcune operazioni, un corpo della richiesta (body); in particolare il body è presente nelle operazioni PUT e POST User-Agent: Mozilla/5.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate

7 Risposta HTTP Una risposta HTTP contiene: un codice numerico che indica lesito delloperazione (status) informazioni aggiuntive (headers); ad esempio, il tipo di rappresentazione restituito per alcune operazioni, un corpo della risposta (body) HTTP/ OK X-Powered-By: Servlet 2.4; JBoss GA Content-Type: text/html JBoss RESTEasy Project JBoss RESTEasy JBoss RESTEasy is an open source implementation of the JAX- RS specification..

8 Satus HTTP Lo status è codificato su 3 cifre dove la prima cifra indica l'esito generale: 2xx: operazione eseguita con successo 3xx: redirezione (la risorsa desiderata si trova a un altro indirizzo) 4xx: errore da parte del client 5xx: errore interno al server

9 Formato Json JSON (JavaScript Object Notation) è un semplice formato per lo scambio di dati. Basato su due strutture: Un insieme di coppie nome/valore Un elenco ordinato di valori. Nella maggior parte dei linguaggi questo si realizza con un array, un vettore, un elenco o una sequenza. Queste sono strutture di dati universali. Virtualmente tutti i linguaggi di programmazione moderni li supportano in entrambe le forme.

10 Formato Json I tipi di dato supportati sono: Booleani Interi,reali,virgola mobile Stringhe Array Null Strutture formate dai parametri supportati. { "type": "menu", "value": "File", "items": [ {"value": "New", "action": "CreateNewDoc"}, {"value": "Open", "action": "OpenDoc"}, {"value": "Close", "action": "CloseDoc"} ] }

11 Architettura Server Il server dell'applicazione di carSharing, è basato sulla tecnologia REST implementata utilizzando il framework Jersey che aderisce alla JAX-RS che definisce i servizi mediante l'uso di annotazioni. il path della risorsa il tipo di richiesta il tipo di risposta definita secondo MIME media il formato accettato definito secondo MIME media i parametri al i parametri ai un valore di default in caso il parametro risulti assente.

12 Architettura Server Il server dell'applicazione di carSharing, offre i propri servizi come REST implementati utilizzando il framework Jersey che aderisce alla JAX-RS che definisce i servizi mediante l'uso di annotazioni. il path della risorsa il tipo di richiesta il tipo di risposta definita secondo MIME media il formato accettato definito secondo MIME media i parametri al i parametri ai un valore di default in caso il parametro risulti assente.

13 Architettura Server

14 DB

15 Package Service Contiene le risorse fornite agli utenti, tra le principali: RisorsaDescrizione User/Rappresenta un utente User/FeedbackRappresenta un feedback Trip/Rappresenta un viaggio Trip/PassengerRappresenta un passeggero di un trip Trip/ListRappresenta un acollezione di viaggi CarRappresenta un auto Car/ListRappresenta una collezione di auto NotificationRappresenta una collezione di notifiche

16 Package DAO Si occupa dell'interfacciamento e della gestione del db: ConnectionManager: Si occupa della gestione delle connessioni al db, implementando il riciclo delle stesse gestite tramite un poll di connessioni libere, mediante il pattern singleton DataAccessObject: Realizza le query verso il db, utilizzando una connessione richiesta al connectionManager.

17 Package Package bean in questo package sono contenute classi che hanno scopo di contenitori di dati. Package Utility Qui vengono offerti dei servizi di supporto all'applicazione come conversione di immagini in stringhe per essere cosi trasportate mediante il protocollo http, gestione della memoria, ecc.. Package Configuration qui sono riposte informazioni di cofigurazione del server.

18 Json vs Xml Semplicità Json ha una grammatica molto più piccola di xml Ridondanza XML ha una ridondanza maggiore di JSON con conseguente aumento di peso Interoperabilità Json e Xml hanno lo stesso potenziale di interoperabilità. Xml attualmente è molto utilizzato ma Json inizia a farsi conoscere grazie alla facilità di conversione da Xml a Json e la presenza di librerie di parsing nella maggior parte dei linguaggi di programmazione.

19


Scaricare ppt "REST Il paradigma REST è basato su un protocollo di comunicazione stateless, client-server, chacheable e scalabile, tipicamente HTTP (ma non necessariamente,"

Presentazioni simili


Annunci Google