JAX RS
1 Cheyma Ben Njia
OBJECTIFS
Comprendre le style d’architecture REST
Comprendre les différences entre les services web
étendus(SOAP) et les services web REST
2
PLAN
Présentation de REST
Motivation pour REST
Principes de REST
Différences entre SOAP et REST
Développement de services web REST java
3
PRÉSENTATION DE REST 1/2
REST est l’acronyme de Representational State
Transfert
Principe défini dans la thèse Roy FIELDING en 2000.
I l est l’un des principaux auteurs de la spécification HTTP
Il est le développeur du serveur web Apache
REST est un style d’architecture inspiré de
l’architecture du web pour construire des services web
Un style d’architecture est un ensemble de contraintes
qui permettent, lorsqu’elles sont appliquées aux
composants d’une architecture, d’optimiser certains
critères propres au cahier des charges du système à
concevoir
4
PRÉSENTATION DE REST 2/2
REST n’est pas:
Un format
Un protocole
Un standard
Bien que REST ne soit pas un standard, il utilise
des standards
HTTP
URL
XML/HTML
5
MOTIVATION POUR REST 1/2
REST est une alternative à SOAP
En 2006, Google a abandonné son API SOAP au
profit d’une API simplifiée REST.
6
MOTIVATION POUR REST 2/2
REST est léger et simple:
Les messages sont courts, faciles à décoder par le
navigateur et par le serveur d’application.
REST est auto-descriptif:
Vous pouvez naviguer à travers ses ressources comme vous
le feriez avec une page web. Il y ’a une URL intuitive
unique pour chaque ressource . On peut facilement en
déduire la structure des ressources sans avoir besoin de
beaucoup de documentation.
REST est stateless:
Consommation de mémoire inférieure
REST peut être géré en cache
Mise en cache possible donc meilleure montée en charge. 7
PRINCIPES DE REST 1/7
8
PRINCIPES DE REST 2/7
Une ressource
Un identifiant de ressource
Une représentation de la ressource
Interagir avec les ressources
Requêtes HTTP: GET, POST, PUT et DELETE
9
PRINCIPES DE REST 3/7
Ressources(identifiant)
Identifié par une URI
Exemple http://localhost:8080/libraryrestwebservice/books
Méthodes (Verbes)
Pour manipuler la ressource
Méthodes HTTP: GET, POST, PUT and DELETE
Représentation
Donne une vue sur l’état de la ressource
Informations transférées entre le client et le serveur
Exemple: XML, Text, JSON, ……
10
PRINCIPES DE REST 4/7
Méthodes
Une ressource quelconque peut subir quatre
opérations de base désignées par CRUD
Create(Créer)
Retrieve(Lire)
Update(mettre à jour)
Delete(Supprimer)
REST s’appuie sur le protocole HTTP pour
exprimer les opérations via les méthodes HTTP
Create POST
Retrieve GET
Upadet PUT
11
Delete DELETE
PRINCIPES DE REST 5/7
Méthodes
Méthode GET fournit la représentation de la
ressource
Méthode POST crée une ressource
12
PRINCIPES DE REST 6/7
Méthode DELETE supprime une ressource
Méthode PUT
13
PRINCIPES DE REST 7/7
Représentation
Fournir les données selon une représentation pour:
Le client( GET): format de sortie
Le serveur(PUT et POST): format d’entrée
La représentation d’une ressource peut prendre
différents formats:
XML
JSON
Text
Le format d’entrée (PUT et POST) et le format de
sortie (GET) d’un service web d’une ressource
peuvent être différents.
14
WADL 1/2
Web Application Description Language
Est un langage de description XML de services de
type REST
Est une spécification W3C initiée par SUN
L’objectif est de pouvoir générer
automatiquement les APIs clientes d’accès aux
services REST
Remarques
Peu d’outils exploitent la description WADL
Apparu bien plus tard
15
WADL 2/2
16
SERVICE WEB ÉTENDUS VS REST 1/5
Services web étendus sont orientés activité
Les opérations dépendent
des types des activités
Services Web REST sont orientés ressource
Les mêmes opérations
quelque soit la ressource
17
SERVICE WEB ÉTENDUS VS REST2/5
Protocole de communication
Services web étendus
REST
18
SERVICE WEB ÉTENDUS VS REST 3/5
19
SERVICE WEB ÉTENDUS VS REST 4/5
20
SERVICE WEB ÉTENDUS VS REST 5/5
21
SERVICES WEB REST AVEC JAVA
JAX-RS: Java API for Restful Web Services
Spécification décrivant la mise en œuvre et la
consommation des services web REST
JAX-RS est basé sur les annotations
22
SERVICES WEB REST AVEC JAVA
Différentes implémentations de JAX-RS sont
disponibles:
JERSEY (Oracle)
CXF (Apache)
RESTEasy(Jboss)
RESTlet
Seule l’approche Bottom-up est possible
Annoter une classe POJO
Compiler et déployer
23
EN RÉSUMÉ
Rest est un style d’architecture
Rest est une alternative aux services web
étendus (SOAP)
Rest se base sur le protocole HTTP
JAX-RS est l’API java permettant de développer
et de consommer des services web REST
24