Services Web REST
Module SOA A.U 2024-2025
1
Objectifs
Comprendre le style d’architecture REST.
Concevoir et consommer des services Web RESTful
JAX-RS
2
Plan
• Présentation de SW REST
• Motivation pour REST
• Principes de REST
• Architecture RESTful
• Contrat WADL
SW REST
3
Présentation de REST 1/2
▪ REST est l’acronyme de REpresentational State Transfert
▪ Principe défini dans la thèse de Roy FIELDING en 2000
-L’un des principaux auteurs de la spécification HTTP
-Le développeur du serveur Web Apache
▪ REST est un style d’architecture inspiré de l’architecture du Web pour construire des services web
▪ Les applications respectant les architectures orientées ressources sont nommées RESTful
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.
SW REST
4
Présentation de REST 2/2
▪ REST est:
- un style d’architecture non standardisé
- une approche pour construire une application
▪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
SW REST
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
Source: [Link]
SW 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
SW REST
7
Architecture RESTful
SW REST
8
Fonctionnement d’un Service Web REST
Messages
HTTP Appel
Application
Serveur d’application
Cliente HTTP
Parseur Parseur
XML, JSON, Réponse XML, JSON,
etc etc
Client Serveur
SW SOAP
9
Principes de REST 1/7
URI
[Link]
Ressource
La météo de Tunis
Représentation
SW REST
10
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
SW REST
11
Principes de REST 3/7
▪ Ressources (Identifiant)
•Identifié par une URI
Exemple : [Link]
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
Exemples : XML, Text, JSON, …
SW REST
12
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
▪ Update PUT
▪ Delete DELETE
SW REST
13
Principes de REST 5/7
❑ Méthodes
• Méthode GET fournit la représentation de la ressource
GET: /esprit/etudiants
HTTP status: 200 (OK)
Client Représentation Serveur
• Méthode POST crée une ressource
POST: /esprit/etudiants
+
Représentation dans le corps
HTTP status: 201 (Created)
Client Serveur
JAX-RS
14
Principes de REST 6/7
❑ Représentation
Désigne les données échangées entre le client et le serveur pour une ressource:
• 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, HTML
•…
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.
JAX-RS
15
Principes de REST 7/7
❑ Représentation
Désigne les données échangées entre le client et le serveur pour une ressource:
• 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, HTML
•…
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.
JAX-RS
16
WADL 1/2
▪ Web Application Description Language
▪ Un langage de description XML de services de type REST
▪ 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 exploite la description WADL
-Apparu bien plus tard
JAX-RS
17
WADL 2/2
Exemple
SW REST
18
Développement d’un Service Web REST
❑ Seule l’approche bottom-up est possible:
▪ Implémenter l’application.
▪ Compiler, déployer et tester.
▪ Une interface de description (Swagger, WADL, etc) peut être générée.
SW REST
19
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
SW REST
20