4. SERVICES WEB REST 46



Documents pareils
Architectures Web Services RESTful

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Applications et Services WEB: Architecture REST

Architecture Orientée Service, JSON et API REST

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Introduction aux «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Les Architectures Orientées Services (SOA)

Petite définition : Présentation :

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Compte Rendu d intégration d application

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Programmation Web Avancée Introduction aux services Web

Web des services : REST

Sécurité des Web Services (SOAP vs REST)

Développement d'un logiciel VoIP BlackBerry

Application Web et J2EE

Bien architecturer une application REST

Programmation Web. Introduction

Mise en œuvre des serveurs d application

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

L3 informatique TP n o 2 : Les applications réseau

Développement des Systèmes d Information

Web Tier : déploiement de servlets

les techniques d'extraction, les formulaires et intégration dans un site WEB

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Hébergement de site web Damien Nouvel

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Environnements de Développement

Devenez un véritable développeur web en 3 mois!

Introduction aux. services web 2 / 2

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Les services usuels de l Internet

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Programmation Web. Madalina Croitoru IUT Montpellier

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Stocker des données sur Amazon S3

Technologies pour Web Services faciles : REST, JSON

Les Services Web. Jean-Pierre BORG EFORT

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

Formation en Logiciels Libres. Fiche d inscription

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Alfstore workflow framework Spécification technique

ABB personnalise son service client avec la plate-forme en ligne One ABB on the Web Jan Anders Solvik, Håkan Wärdell, Nathan Becker

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Paris Airports - Web API Airports Path finding

Catalogue des formations Edition 2015

La directive INSPIRE en Wallonie: le géoportail et l infrastructure de diffusion des géodonnées en Région wallonne (InfraSIG(

Oauth : un protocole d'autorisation qui authentifie?

Responsable du cours : Héla Hachicha. Année Universitaire :

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

BPEL Orchestration de Web Services

Messagerie asynchrone et Services Web

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Architectures d'intégration de données

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Business Process Execution Language

Approche Contract First

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Refonte front-office / back-office - Architecture & Conception -

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Programmation Internet Cours 4

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

BES WEBDEVELOPER ACTIVITÉ RÔLE

FileMaker Server 12. publication Web personnalisée avec XML

Hébergement de sites Web

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Joomla! Création et administration d'un site web - Version numérique

SII Stage d informatique pour l ingénieur

Le cadre des Web Services Partie 1 : Introduction

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

Ingénierie des Modèles. Méta-modélisation

SOAP Concepts Application à Glassfish

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

JOnAS 5. Serveur d application d

Internet of Things Part 1

LICENCE PROFESSIONNELLE

Formation : WEbMaster

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Introduction à. Oracle Application Express

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

WebSSO, synchronisation et contrôle des accès via LDAP

Utilisation de Jakarta Tomcat

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Générer du code à partir d une description de haut niveau

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

18 TCP Les protocoles de domaines d applications

Solutions d accès sécurisées pour opérer une Market Place Saas multitenante

Transcription:

4. SERVICES WEB REST 46

REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010, 74% des Web API utilisent REST Permet l envoi de messages sans enveloppe SOAP et dans un encodage libre (XML, JSON, binaire, simple texte). Ce n est pas: Un format Un protocole Un standard 47

Services REST: Fournisseurs https://developer.yahoo.com/ 48

Services REST: Exemples Glassware pour GoogleGlass https://developers.google.com/glass/ 49

Services REST: Serveurs web utilisés par les REST API Selon une étude réalisée en 2010, Apache est le serveur le plus utilisé pour les REST API http://royal.pingdom.com/2010/12/15/most-popular-webservers-for-rest-apis/ 50

Services REST REST n est pas un standard: Pas de recommandation du W3C Les services REST sont utilisés pour développer des architectures orientées ressources (ROA) ou orientées Données (DOA). Qu est ce qu une ressource? «Any information that can be named can be a resource: a document or image, a temporal service (e.g. «today s weather in Los Angeles»), a collection of other resources, a non-virtual object (e.g. a person), and so on. In other words, any concept that might be the target of an author s hypertext reference must fit within the definition of a resource» Roy Fielding thesis, 2000 51

Services REST C est quoi REST? Ressources (Identifiant) identifié par une URI Méthodes pour manipuler l identifiant Méthodes HTTP: GET, POST, PUT, DELETE Représentation donne une vue sur l état: Informations transférées entre le client et le serveur Exemples: XML, JSON, 52

Services REST Architecture Orientée Ressource Toute information qui peut être nommée est une ressource Une ressource est identifiée par un identificateur (URI) Qu est ce qu une URI? 53

Services REST Chaque URI identifie une ressource http://api.domain.com/users/hugo Une URI ne contient pas de verbe Une même URI peut être appelée avec différentes méthodes HTTP (GET, POST, PUT, DELETE) GET http://api.domain.com/users récupère les utilisateurs POST http://api.domain.com/users crée un nouvel utilisateur PUT http://api.domain.com/users/hugo modifie Hugo DELETE http://api.domain.com/users/hugo supprime Hugo 54

Services REST Données fournies suivant une représentation pour le client (GET) Pour le serveur (POST et PUT) Données retournées sous différents formats XML JSON ( (JavaScript Object Notation)) (X)HTML. Le format d entrée (POST) et le format de sortie (GET) d un service Web d une ressource peuvent être différents 55

Services REST Exemples formats JSON et XML 56

57

58

Description de services Web REST 2 Langages: WSDL 2.0 et WADL WSDL 2.0 59 http://www.w3.org/tr/wsdl20/

Description de services Web REST WSDL2.0 Évolution de Web Service Description Language recommandé en 2007 par le W3C. WSDL 2.0 permet de spécifier un binding HTTP au lieu de SOAP, utilisant n importe quel verbe HTTP. Permet donc en théorie de décrire des interfaces REST-like et RESTful...... quoi que le modèle conceptuel sous-jacent reste centré sur la notion d opération. Des paramètres (partie de l URI après le?) peuvent être spécifiés à l aide d un schéma XML. Cela permet notamment de leur associer un type de données. 60

Description de services Web REST WADL (Web Application Description Language) Un langage de description XML de services de type REST Le W3C contribue à sa spécification Permet une description de services par éléments de type: ressource, méthode, paramètre, requête, réponse. Pas assez de frameworks qui supportent la description WADL Liens utiles: https://wadl.java.net/, http://www.w3.org/submission/wadl/ 61

Plus facile à comprendre, à interpréter et à écrire qu un WSDL Description de services Web REST EXEMPLE de description WADL pour l application Yahoo News Search Description des espaces de noms Description de Grammaire XML utilisée par le service Description des ressources Et méthodes HTTP utilisées 62

Description de services Web REST WADL ELEMENTS WADL <application> DESCRIPTION La racine d une description WADL <ressources base=.> Un conteneur pour les ressources que l application fournit L attribut base définit l URI pour les ressource <resource id= " path=" > <method name= " id=" > Décrit la ressource que l application fournit L attribut id identifie l élément ressource L attribut path fournit une URI relative pour l identifiant de la ressource. Fils d élément ressource ou application L attribut name définit les méthodes HTTP <request> <response> Request: décrit une requête à la méthode HTTP sur une ressource Response: décrit la sortie en réalisant la méthode HTTP sur le ressource 63 Pour les autres éléments et attributs pensez à regarder http://www.w3.org/submission/wadl/

Description de services Web REST WADL Design simple Facile à lire, comprendre et implémenter Authentification N est pas un standard WSDL Authentication est une recommandation W3C design complexe Nécessité de comprendre plus de concepts utilise uniquement des paramètres XML 64

Description de services Web REST Langages académiques pour la description sémantique de services REST: SA-REST (Semantic Annotation of Web Resources) et hrest (HTML for RESTFUL SERVICES). Utilisent l annotation sémantique de la description textuelle des services, par un micro-format (hrests) ou RDFa (SA- REST). Propositions très influencées par SOAP : SA-REST découle explicitement de SA-WSDL, le modèle conceptuel de hrest est très proche de celui des services SOAP, centré sur la notion d opération. 65

SOAP VS REST 66

SOAP VS REST REST SOAP Standardisé Non Oui Interopérabilité Non Oui Sécurité Non (restreinte par l emploi des méthodes HTTP) Oui (WS-Security) Complexité Non Oui (lourdeur) 67

5. DÉVELOPPEMENT DE SERVICES WEB REST EN JAVA 68

REST EN PRATIQUE Le développement de services web de type REST: Coté Serveur: code pour le traitement du service web Coté Client: code qui permet d appeler un service web Développement de services Web REST Java, PHP, C#, C++, Différents frameworks de développement de Services Web Apache CXF et Oracle Jersey (respectent la spécification JAX-RS) Autres: AXIS 2 Apache (ws.apache.org/axis2), etc 69

REST dans le monde Java API JAX-RS : Java API for Restful Web Services Interface de programmation Java permettant de créer des services Web avec une architecture REST. Fournie avec Java EE 6 Lien: https://jax-rs-spec.java.net/ Version: dernière version JAX-RS 2.0 Les implémentations JAX-RS du marché: Oracle Jersey 2.0: framework pour faire des services web RESTful RestEasy: Projet Jboss pour la création des services web. Apache CXF Restlet: un des premiers framework implémentant REST pour Java Etc, Package Java de l API: javax.ws.rs 70

Source: http://mbaron.developpez.com/soa/jaxrs/ JAX-RS: fonctionnement 71

JAX-RS: Java API for RESTful Web Services JAX-RS définit un certain nombre d'annotations: @Path : définit le chemin de la ressource. Cette annotation se place sur la classe et/ou sur la méthode implémentant le service. @GET, @PUT, @POST, @DELETE : définit le verbe implémenté par le service @Produces : spécifie le ou les Types MIME de la réponse du service @Consumes : spécifie le ou les Types MIME acceptés en entrée du service @PathParam: permet d'associer un morceau de l'url de requête à un champ ou un paramètre. 72 @QueryParam, @FormParam, @MatrixParam, etc.

JAX-RS: Java API for RESTful Web Services Exemple: Service Web REST «HelloWorld» Chemin de ressource pour associer une ressource hello à une URI Méthode HTTP utilisée Type de réponse : texte 73

JAX-RS: Java API for RESTful Web Services Exemple: Résultat obtenu Résultat interprétable par un navigateur web Envoi d une requête HTTP de type GET demandant la lecture de la ressource hello 74 Le chemin à la ressource../hello

JAX-RS: Java API for RESTful Web Services Exemple (Suite): WADL de l application Jersey: implémentation de JAX-RS Description de la ressource: - Le chemin - Méthode - Méthode HTTP - Type de media (format de retour) 75

Annotation @Path Une classe Java doit être annotée par @Path pour qu elle puisse être traitée par des requêtes HTTP L annotation @Path sur une classe définit des ressources appelées racines ( Root Resource Class) La valeur donnée à @Path correspond à une expression URI relative au contexte de l application Web Adresse du serveur+ Port Nom du projet Contexte de l application Web +valeur donnée à @Path 76

Annotation @Path @Path peut annoter des méthodes de la classe. L URI résultante est la concaténation de l expression du @Path de la classe avec l expression du @Path de la méthode 77

Les annotations: @GET, @POST, @PUT, @DELETE : Méthodes HTTP L annotation des méthodes Java permet de traiter de requêtes HTTP suivant le type de méthode (GET, POST, ) Les annotations disponibles par JAX-RS sont les suivantes @GET, @POST, @PUT, @DELETE et @HEAD Ces annotations ne sont utilisables que sur des méthodes Java. On ne peut poser chaque annotation qu une seule fois sur une unique méthode (qui doit être public) dans une classe donnée. Le nom des méthodes Java n a pas d importance puisque c est l annotation employée qui précise où se fera le traitement 78

Annotation @QueryParam Permet d'associer un paramètre de la requête à un champ ou un paramètre d'une méthode de notre classe. Résultat en donnant comme valeur au paramètre name «MyService» 79

Annotation @PathParam Dans l annotation «@Path», il est possible de mettre des parties variables entre accolades {}. Ils peuvent alors être récupérés comme paramètres de la méthode avec l annotation «@PathParam» 80

Annotations @Produces, @Consumes Définissent le type de média (page web, document XML, etc) échangés entre le client et le serveur. L utilisation de l une de ces annotations sur une méthode ressource redéfinit celle qui s appliquait sur la classe de la ressource pour un paramètre d une méthode ou une valeur de retour. 81

TP Création et déploiement de Services REST Manipulation de l API JAX-RS (Java API for RESTful Services)+ Jersey Création de services pour la réservation d Hôtels JAX-RS (Java API for RESTful Services)+ Jersey JAXB (Java Architecture for XML Binding) JPA (Java Persistence Architecture) 82