Cours Web Services ISIMA 3F3

Slides:



Advertisements
Présentations similaires
Les Web Services Schéma Directeur des Espaces numériques de Travail
Advertisements

ACubeOLAP Client Olap en ACube.
Transformation de documents XML
Julien HERON.
Exposé de Système - Informatique et Réseau
(Classes prédéfinies – API Java)
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
Design Pattern MVC En PHP5.
TP 3-4 BD21.
Servlet JAVA.
Comprendre l’architecture des Web services REST
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Les Services Web Avec.NET version 1.1. Un service Web en bref… Méthodes ou objets accessible à distance via SOAP (Simple Object Access Protocol ); SOAP.
Etude des Technologies du Web services
Communiquer avec ELYX.
Nouveau blog. WordPress connexion Nommez votre blog.
XML-Family Web Services Description Language W.S.D.L.
Le langage ASP Les variables d'environnement HTTP avec Request.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
.Net Remoting.
Services fournis par le SI et technologies associées
ISICIL SWEETDEKI Intégration du logiciel Mindtouch Core dans la plate-forme ISICIL Guillaume HUSSON.
Framework Play 2.0 Démonstration du proof of concept
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
MODEX WEB BAPTISTE DESPREZ Un peu de sécurité. Avant dentrer dans le vif du sujet JavaScript Langage de script (comme PHP) Exécuté par votre navigateur.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Applications web1 Cours Web Services ISIMA 3F3. Applications web2 JavaScript Inventé par Netscape... sans rapport avec Java. Standardisé par l’ECMA, spécification.
Communication sur le web
CENTRALISATION DES CANDIDATS LOCATAIRES
Cours Web Services ISIMA 3F3
PROGRAMMATION WEB FRONT-END.
JavaScript Nécessaire Web.
Architecture REST & Web Services
PHP 5° PARTIE : LES COOKIES
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Les réseaux - Internet Historique Réseau local Internet Les protocoles
Cours de programmation web
Annexe 2 entêtes HTTP et cookies. Accéder aux objets requêtes et réponses Ces objets sont disponibles dans les classes clé depuis la méthode awake les.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Mastère Professionnel Systèmes de Communication et Réseaux
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
GESTION DE COMPOSANTS ELECTRONIQUES
Auvray Vincent Blanchy François Bonmariage Nicolas Mélon Laurent
Les sockets.
Présentation Finale Spirit 07 / 03 / 2011 Groupe Vert 1 Equipe Verte.
Struts.
 Formulaires HTML : traiter les entrées utilisateur
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Présentation ESTRABOX
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
Representational State Transfer - REST
Architecture Client/Serveur
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Comprendre l’architecture des Web services REST
Sécurité des Web Services
Introduction aux technologies des web services en Java EE
TP D’UML Groupe N° 3.
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Architecture J2EE Web Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
Développement d’applications Web
A. DAAIF ENSET Mohammedia Université Hassan II Casablanca.
Transcription de la présentation:

Cours Web Services ISIMA 3F3 REST Cours Web Services ISIMA 3F3

Technologies de communication inter-applications API : on embarque directement l’application à appeler (dépendance directe, JAR) EJB : on appelle l’application avec un protocole de niveau transport (TCP/IP) ou directe (si même JVM) REST : échange niveau HTTP, on exploite à 100% le protocole SOAP : au dessus d’HTTP, on encapsule les messages

REST Representational State Transfer Roy Fielding http://www.ics.uci.edu/~fielding/pubs/dissertation /top.htm → Exploitation de la sémantique du Web, de la mécanique HTTP

Principe On utilise les méthodes HTTP sur les ressources exposées afin d’effectuer toutes les opération voulues. On est donc toujours sans état. Technologies utilisées HTTP URI XML / JSON (représentation des ressources) Types MIME

JSON JavaScript Object Notation Utilisé pour les services exposé directement vers le navigateur (Mashup) Structure : Paires clé / valeurs Les valeurs peuvent être des listes de paires, des tableaux de paires, des objets, chaines de caractères…

Exemple de JSON

Utilisation de JSON JSON est une structure de donnée JavaScript. Pour l’interpréter, on utilisait la fonction JavaScript eval(), dangereuse : var donnees = eval('('+donnees_json+')'); Natif dans les navigateurs depuis 2009 (IE8, Firefox 3.5, Opera 10.5) : var donnees = JSON.parse(donnees_json);

XML vs JSON XML est standard Manipulation aisée Verbeux JSON est crée pour les navigateurs web Interprété nativement, donc performant Supporté par la plupart des langages moyennant une API

Utilisation de REST Paul Downey, BT

Communication REST JSON XML Client Serveur Web HTTP

CRUD 2009 - Cesare Pautasso

Exemple : Création d’un sondage POST /sondage <options>A,B,C</options> 201 Created Location: /sondage/672609683 GET /poll/672609683 200 OK <options>A,B,C</options>

Exemple : Vote au sondage POST /sondage/672609683/vote <name>O. Coupelon</name> <choice>B</choice> 201 Created Location: /sondage/672609683/vote/1 GET /sondage/672609683 200 OK <options>A,B,C</options> <votes> <vote id=‘1’> <name>O. Coupelon</name> <choice>B</choice> </vote> </votes>

Exemple : Modification d’un sondage PUT /sondage/672609683/vote/1 <name>O. Coupelon</name> <choice>C</choice> 200 OK GET /poll/672609683 200 OK <options>A,B,C</options> <votes> <vote id=‘1’> <name>O. Coupelon</name> <choice>C</choice> </vote> </votes>

Exemple : Suppression d’un sondage DELETE /poll/672609683 200 OK GET /poll/672609683 404 Not Found

URL http://server:port/path/to/resource?p1=v1&p2=v2 Protocole Nom du serveur et port Chemin de la ressource Requête

URL propre http://map.search.ch/lugano http://maps.google.com/maps?f=q&hl=en&q=lugano, +switzerland&layer=&ie=UTF8&z=12&om=1&iwloc=addr

URL propre – Bonnes pratiques Utiliser le chemin de la ressource pour spécifier les paramètres Une fois définie, une URL ne doit plus changer REST utilise des URL opaques : L’accès à une nouvelle ressource ne doit pas être construite par le client, mais transmise par le serveur

Création d’une ressource REST Identification des ressources Définition d’url propres Pour chaque url, prévoir les actions pour GET, POST, PUT & DELETE Documenter chaque ressource Définir les liens entre ressources Déployer et tester chaque ressources sur un serveur web

Bonnes pratiques - GET Operation de lecture Idempotente Possibilité de cache

Bonnes pratiques - POST Operation de création Effet de bord possible sur le serveur

Bonnes pratiques – POST vs PUT Identifier une ressource créée Préferer POST /poll/672609683 201 CREATED Location: /poll/672609683/vote/1 à PUT /poll/672609683/vote/1 200 OK

Négociation de contenu On peut ajouter en entête dans la requête le type de contenu qu’on souhaite recevoir, par ordre de référence : GET /resource Accept: text/html, application/xml, application/json 200 OK Content-Type: application/json

Retours d’information Une fiche mémo : http://www.quicklycode.com/cheatsheets/http- response-cheat-sheet Doivent être interprétés correctement par le client, et émis correctement par le serveur.

WADL Web Application Description Language Interface décrivant les opérations disponibles d’un service REST, ses entrées/sorties… Créé automatiquement par Jersey

Gestion des états dans REST HTTP est Stateless Ajout d’information dans les ressources retournées représentant les transitions valides Technique HTTP classiques de sessions

Sécurité Utilisation de la sécurité HTTP TLS Authentification

Asynchronisme HTTP est un protocole synchrone On peut simuler une file simplement : POST /queue 202 Accepted Location: /queue/message/1 GET /queue/message/1

Use case REST Surtout utilisé pour exposé des services non authentifié sur le web. Utilisé pour ses performances Utilisé pour des services orienté utilisateur final Utilisé pour sa simplicité

JAX-RS Spécification technique (JSR 311) côté serveur JAX-RS 1.1 : Java EE 6 JAX-RS 2.0 : en cours de développement

Implémentations de JAX-RS Jersey (Implémentation de référence) RESTEasy (JBoss) Restlet Apache CXF

Annotations JAX-RS utilise des annotations Java pour exposer les services Masque tous les traitements HTTP @Path : Chemin d’accès à la ressource @GET,@PUT, @POST,@DELETE : Type de requête @Consumes : Type de donnée en entrée @Produces : Type de donnée en sortie @PathParam, @QueryParam, @HeaderParam, @CookieParam, @MatrixParam, @FormParam

Client REST Le client REST le plus commun est le navigateur Web. Pour faire communiquer des applications REST ou effectuer des tests unitaires, des implémentations clientes existent.

Exemple de Jersey Client Création du client (opération lourde) : Client client = Client.create(); Accès à une ressource : WebResource webResource = client.resource("http://example.com/base"); Opérations sur les ressources : String s = webResource.accept("text/plain").get(String.class); ClientResponse response = webResource.type("text/plain").put(ClientResponse.class, "foo:bar");