WebService Rest PDF
Document Details
Uploaded by AppreciableCedar4152
Faculté des Sciences de Bizerte
Tags
Summary
This document provides an overview of RESTful web services architecture, including definitions, core concepts, operations, and methods. It also compares REST to SOAP. The document uses diagrams, examples, and a discussion format.
Full Transcript
COMPRENDRE L’ARCHITECTURE DES WEB SERVICESREST Objectifsdu cours ¨ REST Comprendre l’architecture des services web REST Créer et exposer des services REST Consommer des services REST Utilisation du web aujourd’hui (1) 1...
COMPRENDRE L’ARCHITECTURE DES WEB SERVICESREST Objectifsdu cours ¨ REST Comprendre l’architecture des services web REST Créer et exposer des services REST Consommer des services REST Utilisation du web aujourd’hui (1) 1 2 2 1 2 2 1 Serveur d’applications 1 1 2 2 1 2 2 Serveur d’applications Demande de ressources Resources Types De Services WEB ¨ Deux principaux types SOAP REST. Services Web RESTFul Web Service REST Web Service REST Ce qu’il est : Ø Un système d’architecture Ø Une approche pour construire une application Ce qu’il n’est pas Ø Un protocole Ø Un format Ø Un standard Qui font du REST? REST è Statistics Statistique d’utilisation des services web RESTet SOAP chez AMAZON REST: Une Architecture Simple Basée sur 7 propriétés principales : ¨ Performance : Interaction simple entre lescomposants ¨ Evolutivité : Supporte une large variété de composants ¨ Simplicité : Entre lesinterfaces ¨ Modification : Peut être modifié sansimpacter les clients ¨ Visibilité : Communication claire entre les composantes ¨ Confiance : Reprise sur panne REST è Caractéristiques ¨ Séparation Client/ Serveur ¨ SansEtats (Stateless) Chaque requête envoyée au serveur doit contenir toutes les informationsrelatives à son état et est traitée indépendamment de toutes autres requêtes Aucune gestion de session ou d’état des ressources par le serveur ¨ Possibilité de mise en Cache. ¨ Orienté Ressources ¨ Messagesauto-descriptifs ¨ Hypermedia : Aucune autre action n’est supportée outre cellesqui sont décrites REST è utilisation Ø Utiliser dans le développement desapplications orientés ressources (ROA) ou orientées données (DOA) Ø Les applications respectant l’architecture REST Sont dites RESTFUL Rappel à Protocol HTTP Le Protocole HTTP ¨ HyperText Transfer Protocol ¨ Protocole d’échanges d’information sur le web ¨ Basé sur TCP/IP Requête HTTP Réponse HTTP HTTPClients HTTPServer Enchainement Client Serveur URL ¨ Unique Resource Location ¨ Identifie les ressources de manière unique surle Web ¨ 4 parties Protocole (http, ftp, mail, … ) Host (google.com) Port (8080, 80) Path (Chemin vers la ressource sur le serveur) Requête HTTP ¨ Permet à un client de demander une ressource sur un serveur ¨ Format d’un message HTTP Header n Request Line n Request Headers[Optional] Body En. tête des requêtes HTTP ¨ Request Line POST / bibliotheque/ f aces/ views/ categorie/ Create.xhtml HTTP/1.1 ¨ Request Headers Host: localhost:8080 Connection: keep-alive Content-Length: 176 Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Origin: http://localhost:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36 Content-Type: application/x-www-form-urlencoded Referer: http://localhost:8080/bibliotheque/faces/views/categorie/List.xhtml Accept-Encoding: gzip, deflate Accept-Language: fr,fr-FR;q=0.8,en;q=0.6 Cookie: JSESSIONID=d64a9484e61761662575b5d14af1 Corp des Requêtes HTTP ¨ Contient les données supplémentaires envoyées au serveur j_idt13:nom:MPSRIR j_idt13:description:NTDP Réponse HTTP ¨ Réponse du serveur au client ¨ Format d’une réponse HTTP ¨ Reponse Message Header ¨ Response Line ¨ Response Header ¨ Response Message [Optional] En Tête Des Réponses HTTP ¨ Response Line HTTP/1.1 200 OK ¨ Response Headers HTTP/1.1 200 OK X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.0 Java/Oracle Corporation/1.8) Server: GlassFish Server Open Source Edition 4.0 Content-Type: text/html;charset=UTF-8 Date: Sun, 23 Nov 202316:05:39 GMT Content-Length: 2274 Corp des Réponses HTTP ¨ Response Body Create New Categorie< / title> < / head> Create New Categorie Categorie was successfully created. Méthodes HTTP ¨ HTTPdéfinit un ensemble de méthode permet de caractériser lesrequêtes GET : Récupérer des ressources à un serveur POST: Envoyer des données à un serveur PUT: Modifier des données DELETE: Suppression de données OPTIONS: Demander la liste des méthodessupportées par un serveur Autres : HEAD, TRACE, CONNECT REST et HTTP ¨ DesressourcesIdentifiéespar desURIs (http://univgb.tn/cursus/MPSRIR/fsg) ¨ Desactions surles ressources correspondant aux typesde requêtesHTTP: GET, POST, PUT, DELETE ¨ Représentation des ressources : Vue sur l’état de la ressource ¨ Format d’échange entre le client et le Serveur (XML,JSON,Text/Plain … Ressources q Une ressource est un objet identifiable sur le système è Livre, Client, Prêt Une ressourcesn’est pasforcément une entité physique, elle peut être virtuelle (Prêt, Consultation,…) q Une ressource est identifiée par une URI : Une URI identifie uniquement une ressource sur le système http://ntdp.fsg.tn/bookstore/books/1 Clef primaire de la ressource dans la BDD Actionssur les ressources ¨ Une ressource peut subir des actions correspondant aux opérations effectuées sur la ressource. ¨ Les opérations de bases (CRUD) sont identifiées par les typesde requêtesHTTP(GET, PUT, POST, DELETE) Opérations CRUD ¨ Architecture simple basée sur le protocole HTTP ¨ Lesactions s’auto-décrivent et s’identifient aux types de requetésHTTP(ou méthode) ¨ POST : Créer une nouvelle ressource à Ajout de données ¨ GET : Récupérer une ressource sansla modifier ¨ PUT : Mettre à jour une ressource identifié par l’URI ¨ DELETE: Supprimer la ressource identifiée par l’URI Méthode POST ¨ Crée une nouvelle ressource sur le système POST: http:/ / pixsellit.com:1337/p erson { "nom": "Nicolas", "prenom": "Sarkozy", "sexe": "Male",.... } Client { "nom": "Nicolas", Serveur "prenom": "Sarkozy", "sexe": "Male", "id":"58330117b549726b71281e01"....} Méthode GET ¨ Demande une représentation de la ressource tel qu’elle est sur le système (pas de modification) GET: http://pixsellit.com:1337/person/58330117b549726b71281e01 { "nom": "Nicolas", "prenom": "Sarkozy", Client "sexe": "Male",.... Serveur } Méthode PUT ¨ Mise à jour de la ressource sur le système Identifiant de la ressource sur le serveur PUT: http://pixsellit.com:1337/person/58330117b549726b71281e01 { "nom": "Francois", "prenom": "Fillon" } Client { "nom": ”Francois", Serveur "prenom": “Fillon", "sexe": "Male",....} Méthode DELETE ¨ Supprime la ressourceidentifiée par l’URI sur le serveur Identifiant de la ressource sur le serveur DELETE:http://pixsellit.com:1337/person/58330117b549726b71281e01 Client { "nom": ”Francois", Serveur "prenom": ”Fillon", "sexe": "Male",.... } REST, Méthodes HTTP Ressources ¨ L’opération à effectuer sur une ressource est déterminée par le type de la requête HTTP ¨ Plusieurs actions sont possibles pour une même URI è Tout dépend du type de la requête REST, Méthode HTTPet Ressources ¨ Crée une nouvelle personne à POST/http://exemple.com/rest/person ¨ Liste despersonnesà GET/http://exemple.com/rest/person ¨ Récupérer une personne à GET/http://exemple.com/rest/person/{id} ¨ Modifier une personne à PUT/http://exemple.com/rest/person/{id} ¨ Supprimer une personne à DELETE/http://exemple.com/rest/person/{id} Les services RestFul ¨ Que se passe t-il si on fait de la lecture avec un POST? Si on fait une mise à jour avec un DELETE? Si on fait une suppression avec unPUT? è RESTne l’interdit pas è Mais si vousle faites, votre application ne respecte pas les exigences. REST et donc n’est pas RESTFul Représentation Unereprésentation désigne les données échangées entre le client et le serveur pour une ressource: q HTTPGET è Le serveur renvoie au client l’état de la ressource q PUT,POSTè Leclient envoie l’état d’une ressourceau serveur Peut être sousdifférent format : ¨ JSON ¨ XML ¨ XHTML ¨ CSV ¨ Text/plain ¨ ….. Rappel à JSON JSON JSON « JavaScript Obect Notation » est un format d’échange de données, facile à lire par un humain et interpréter par une machine. Basé sur JavaScript, il est complètement indépendant des langages de programmation maisutilise des conventions qui sont communesà toutesleslangagesde programmation (C, C++, Perl, Python, Java, C# , VB, JavaScript,….) Deux structures: ¨ Une collection de clefs/ valeursè Object ¨ Une collection ordonnée d’objets è Array JSON Object Commence par un « { » et se termine par « } » et composé d’une liste non ordonnée de paire clefs/valeurs. Uneclef est suivie de « : » et les paires clef/ valeur sont séparéspar « , » { "id": 51, "nom": "Mathematiques 1", "resume": "Resume of math ", "isbn": "123654", "categorie": { "id": 2, "nom": "Mathematiques", "description": "Description of mathematiques " }, "quantite": 42, "photo": "" } JSON Array Liste ordonnée d’objetscommençant par « [« et se terminant par « ] », les objetssont séparés l’un de l’autre par « , ». [ { "id": 51, "nom": "Mathematiques 1", "resume": "Resume of math ", "isbn": "123654", "quantite": 42, "photo": "" }, { "id": 102, "nom": "Mathematiques 1", "resume": "Resume of math ", "isbn": "12365444455", "quantite": 42, "photo": "" } ] JSON Value Un objet peut être soit un string entre « ""» ou un nombre (entier, décimal) ou un boolean (true, false) ou null ou un objet. WADL ¨ Web Application Description Language ¨ Standard du W3C ¨ Permet de décrire les éléments des services Resource, Méthode, Paramètre, Réponse ¨ Permet d’interagir de manière dynamique avec les applications REST à Moins exploité que le WSDL pour les Services SOAP WADL WADL. REST VSSOAP Carte Postale Vs. Courier Carte Une lettre, il faut Postale ouvrir l’enveloppe , déplier le papier REST VSSOAP M P S R I R SOAP Client Serveur http://localhost:8080/Bibliotheque/webresources/category/fsg%20NTDP REST Client Serveur Services Web étendus VSREST SOAP è Avantages Standardisé Interopérabilité Sécurité (WS-Security) Inconvénients Performances (enveloppe SOAPsupplémentaire) Complexité, lourdeur Cible l’appel de service Services Web étendus VSREST REST è Avantages è Simplicité de mise en œuvre è Lisibilité par un humain è Evolutivité è Repose sur les principes du web è Représentationsmultiples (XML, JSON,… ) è Inconvénients è Sécurité restreinte parl’emploi des méthodes HTTP è Cible l’appel de ressources WADL è Web Application Definition Language est un langage de description desservicesRESTau format XML. Il est une spécification di W3C initié par SUN (www.w.org/Submission/wadl) è Il décrit les élémentsà partir de leur type (Ressources,Verbes, Paramètre, type de requête, Réponse) è Il fournit les informations descriptives d’un service permettant de construire desapplications clientes exploitant lesservicesREST.