REST(ful) Services Web & Architecture Nicolas Zozol Akka IS
Programme Présentation Définition
1er exemple
Intérêt Services Web Resource
Jax – Rs
Soap
RPC Architecture Restlet
Cloud
Sécurité
Transactions
Définition : Bonnes Pratiques REpresentational State Transfer
HTTP
Bonnes Pratiques Tout est Res(s)ource
CRUD : Post, Get, Put, Delete
Stateless
Connectivité :  < a href >  => GET
HTTP VERBE + URI PUT http://exemple.com/myApp/myResource Header ContentType : «  application/xml; UTF-8»
Authorization : Basic jhekalKslsal= RequestBody <firstname>Bob</firstname>
Requête DELETE
Réponse DELETE
Tout est Ressource …  et URI
Resource 1..* Representation <user> <id>12</id><username> johndoe</username>
</user> {user : {id:12, username: &quot;johndoe&quot; }} ContentType : application/xml, application/json, image/png Ou definir la representation : extjs/user
Décrire une URI URI =  U niform  R esource  I dentifier
On accède à une Resource par son URI
On doit décoder cette URI Outil inclut : /school/teacher/{username}
Algorithme : GET /tarot/chien?atouts=6&excuse=true Une liste de Resource est une Resource /school/teachers/ Une Resource peut avoir plusieurs URI gwt.code.google.com/docs/2.1
gwt.code.google.com/docs/latests
Intérêts Immédiats Java connaît HTTP
Compatibilité : Embarqué => Cloud
HTTP 1.1 est un protocole stable
Une URI se copie/colle
Une URI est indexée par Google
HTTP est gratuit
Champion de la montée en charge
Intérêts Immédiats F U N
Web Services Vendre un accès à des données
Appel classique
Appel Ajax :  POST /rest/user new  Ajax.Request( &quot;/rest/user&quot; , { method: &quot;POST&quot; , requestHeaders:{ &quot;Authorization&quot; : &quot;BASIC FlorentjuG2=&quot; }, postBody:  &quot;<username>Gaël</username>&quot; onSuccess:  function (response) { alert(response.responseText); }, onException :  function (response, ex){ alert(response.responseText); } }); Ajout de l’utilisateur Gaël par Florent
Servlet JAX-RS < servlet > < servlet-name > Jersey </ servlet-name > < servlet-class > com.sun.jersey.spi.container.servlet.ServletContainer </ servlet-class >   </ servlet > < servlet-mapping > < servlet-name > Jersey </ servlet-name > < url-pattern > /rest/* </ url-pattern > </ servlet-mapping > Web.xml UserController.java : renvoit l’id du user @Path( &quot; / user &quot; ) Class   UserController  extends  JaxRsResourceController   { @POST   // For POST /myApp/rest/user @Produces ( &quot;application/xml&quot; ) protected  Response  addUSer ( String requestBody ) { String username =  new  VsxJdom().getValue(requestBody,  &quot;username&quot; ); User u =  new  UserCrud().create(username);  //Business Code return  getResponse( &quot;<root><id>&quot; +u.getId()+ &quot;</id></root>&quot; ); } }
SOAP
Requête Client Web
Travail Serveur  (JEE 5&6)
Wsdl & Xsd
Wsdl & Xsd
REST  vs  SOAP HTTP
Requêtes lisibles
Génération automatique du code Client possible (Rails, Play!)
Refactorisation simple, à la main
Sécurité : SSL+(Autorization/Cookie) HTTP, W3C
Requêtes plus complexes
Prévu pour la génération automatique du code Client

Contenu connexe

PDF
Services rest & jersey
PDF
Service WEB de type REST avec Java
PPT
Introductions Aux Servlets
PDF
cours j2ee -présentation
PDF
les servlets-java EE
PPT
PDF
Cours JSP
PPTX
Introduction à Angular JS
Services rest & jersey
Service WEB de type REST avec Java
Introductions Aux Servlets
cours j2ee -présentation
les servlets-java EE
Cours JSP
Introduction à Angular JS

Tendances (20)

PPT
Les Servlets et JSP
PDF
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
PPTX
Introduction à ajax
PPTX
Fondamentaux d’une API REST
PPTX
Servlets et JSP
PDF
Support Web Services SOAP et RESTful Mr YOUSSFI
PDF
PPTX
Soap, wsdl et uddi
PPT
Soap
PDF
Cours services web_fabrice_mourlin
PDF
Cours php
PPTX
Introduction à spring boot
PPTX
Workshop Spring - Session 1 - L'offre Spring et les bases
PPTX
Jboss Seam
PDF
Tp2 - WS avec JAXRS
PPT
Rencontre mensuelle Montreal - juillet 2012 - kerberos
PDF
Tp3 - Application SOA avec BPEL
PDF
Support JEE Servlet Jsp MVC M.Youssfi
DOCX
comment realiser un Service Web
Les Servlets et JSP
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Introduction à ajax
Fondamentaux d’une API REST
Servlets et JSP
Support Web Services SOAP et RESTful Mr YOUSSFI
Soap, wsdl et uddi
Soap
Cours services web_fabrice_mourlin
Cours php
Introduction à spring boot
Workshop Spring - Session 1 - L'offre Spring et les bases
Jboss Seam
Tp2 - WS avec JAXRS
Rencontre mensuelle Montreal - juillet 2012 - kerberos
Tp3 - Application SOA avec BPEL
Support JEE Servlet Jsp MVC M.Youssfi
comment realiser un Service Web
Publicité

En vedette (20)

PDF
Vieux malakoff-archives-municipales
PPTX
Présentation du programme du Forum des Thématiques du service
PDF
Décuplez la puissance de votre communication avec des documents intelligents ...
PDF
PDF
Comissió OSI
PDF
M7 lesson 6 2 sample space & tree diagrams
PDF
Optimiser ses relances commerciales
PDF
Mois national de vérification de la prévention des chutes 2015 - Résultats
PPTX
Entreprise cousin
PDF
New slideshare
PPT
Mod 4 pre_contra
PDF
Presentaciondefinitivabogotamito 101110180854-phpapp02
PPT
CroissancePlus - Petit Manifeste de Campagne - Version Mobile
DOC
Actividades del tema III
DOCX
fiscalité de l'entreprise
DOCX
PDF
In brands we trust ! Comment créer et développer votre marque - Osons le Design
PPT
Revista abogados proceso
PPTX
ROK Solution pour les Ressources Humaines
Vieux malakoff-archives-municipales
Présentation du programme du Forum des Thématiques du service
Décuplez la puissance de votre communication avec des documents intelligents ...
Comissió OSI
M7 lesson 6 2 sample space & tree diagrams
Optimiser ses relances commerciales
Mois national de vérification de la prévention des chutes 2015 - Résultats
Entreprise cousin
New slideshare
Mod 4 pre_contra
Presentaciondefinitivabogotamito 101110180854-phpapp02
CroissancePlus - Petit Manifeste de Campagne - Version Mobile
Actividades del tema III
fiscalité de l'entreprise
In brands we trust ! Comment créer et développer votre marque - Osons le Design
Revista abogados proceso
ROK Solution pour les Ressources Humaines
Publicité

Similaire à REST JUG Toulouse 20100615 (20)

PPS
Client riche et nouvelles technologies
PPTX
Web dev open door
PDF
Rich Desktop Applications
PDF
Ajax - GTI780 & MTI780 - ETS - A08
PDF
Ajax GTI780 & MTI780 ETS A09
PPTX
Symfony2 - Un Framework PHP 5 Performant
PPTX
ASP.NET from Zero to Hero
PPTX
HTML5 en projet
PPT
BordeauxJUG : Portails &amp; Portlets Java
PDF
nodejs vs vertx
PDF
cours web developpement statique AJAX 2024
PPT
Java Database Connectivity
PPT
Jump Camp - HTML5
PDF
Ter Web Service Intro
PPT
Resource Oriented Architecture
PDF
Ajax en Java - GTI780 & MTI780 - ETS - A09
PDF
Ajax en Java - GTI780 & MTI780 - ETS - A08
PPTX
Authentification sociale en angular 1.pptx
KEY
La mobilité dans Drupal
PPT
Quoi de neuf dans Zend Framework 1.10 ?
Client riche et nouvelles technologies
Web dev open door
Rich Desktop Applications
Ajax - GTI780 & MTI780 - ETS - A08
Ajax GTI780 & MTI780 ETS A09
Symfony2 - Un Framework PHP 5 Performant
ASP.NET from Zero to Hero
HTML5 en projet
BordeauxJUG : Portails &amp; Portlets Java
nodejs vs vertx
cours web developpement statique AJAX 2024
Java Database Connectivity
Jump Camp - HTML5
Ter Web Service Intro
Resource Oriented Architecture
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A08
Authentification sociale en angular 1.pptx
La mobilité dans Drupal
Quoi de neuf dans Zend Framework 1.10 ?

Dernier (7)

PDF
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
PPTX
Projet de Fin d’Études – Plateforme FMS pour la Gestion des FCPR
PPTX
test pour la présentation foire de Chalôns V1
PDF
Processus dans la gestion des transports, TM100 Col18
PDF
Démystification des QR codes - histoire - utilisations - techniques
PDF
1.3.4-Handling-and-Safety-Instructions-FR-2024.pdf
PPT
Pratiques des systèmes d'information ppt
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
Projet de Fin d’Études – Plateforme FMS pour la Gestion des FCPR
test pour la présentation foire de Chalôns V1
Processus dans la gestion des transports, TM100 Col18
Démystification des QR codes - histoire - utilisations - techniques
1.3.4-Handling-and-Safety-Instructions-FR-2024.pdf
Pratiques des systèmes d'information ppt

REST JUG Toulouse 20100615

Notes de l'éditeur

  • #7: Il n’y a aucune information importante dans le corps de la réponse : tout est dans le statut 200 (OK) La réponse est juste un message parfaitement facultatif
  • #8: On suppose qu’il n’y a qu’un seul utilisateur johndoe. Il y a deux URI pour cette resource. On voit souvent code.google/gwt/doc/2.1 ou code.google/gwt/doc/latest
  • #9: Le serveur doit pouvoir renvoyer une représentation différente selon le contentType demandé. Là encore, on voit que REST est bien proche des origines du protocole HTTP.
  • #14: La Servlet se base sur HTTP. Il y a une URI dans web.xml, et on Override la methode POST En cas de problème, on récupère une exception, qui ne sont pas traitées dans cet exemple
  • #16: On visualise et contrôle les données HTTP reçues. On contrôle également les données Htttp que l’on renvoie Le nom de la fonction est plus sémantique. La simplicité (théorique) du XML reçu permet d’utiliser des fonctions simples (VSX) pour récupérer les données Note : Prototype parlait de postBody, alors qu’on préferera requestBody
  • #19: Rien de sorcier à implémenter du SOAP en JEE
  • #21: Le Wsdl et le Xsd sont en principe générés par le logiciel. Le problème est qu’ils sont souvents obligatoire pour le bon déroulement de l’opération. Avec Jax-RS, tout est intégré à la même classe, en Java.
  • #22: WSS permet notamment de vérifier que le message n’a pas changé
  • #24: Ca marche, mais c’est un peu une boite noire.
  • #31: En général, on utilise bien sûr un cookie
  • #36: Cela ne résoud pas le problème du cache de l’ORM. C’est pourquoi les Gros poissons du Web utilisent REST, avec du NoSQL, et des données non critiques Tout se fait, mais parfois mal
  • #38: Trop d’Ajax empêche le copié/collé ainsi que l’indexation par Google. De plus le Javascript et le contour est dans le cache.
  • #39: Avec un support de session important, on va forcément planter si on n’a pas pris le bon chemin.
  • #42: On pourra donc remplacer un composant par un autre sans se soucier du langage, de l’interface, du package, etc.
  • #44: On peut considérer un Restlet comme une Servlet ou Socket n’autorisant que des bonnes pratiques Restful
  • #45: L’autre avantage de Restlet est de bénéficier de la programmation Objet en permettant l’heritage des Composants (peut-on hériter de Jboss ?)
  • #48: On s’attaque ensuite au serveur Mail, auquel on donne une interface uniforme
  • #52: Il faut faire soi-même la gestion de l’autorisation value. Pour des vrais professionnels, ce ne doit pas être un problème.