REpresentational State Transfer
Principes clés
Principes clés
L'architecture Rest s'articule autour de quatres principes clés- Une ressource distribuée sur un serveur distant
- Un identifiant de la ressource
- Des « verbes » HTTP permettant d’agir sur la ressource
- Une représentation de la ressource
Une ressource distribuée
Avec Rest, nous sommes dans un monde distribués. L'objectif de Rest c'esst d'offir un moyen pour manipuler et effectuer des actions sur ces différentes ressources aux travers du protocole HTTP. Une "Action" Rest s'effectue en plusieurs étatpes. Tout d'abord le client veut acceder a une ressource à travers les différents verbes HTTP. Il envoie donc une requete HTTP au serveur en présisant une URL particulère qui correspond a la ressource. Le servuer traite la requete et génère une représentation de la ressource qu'il va renvoyer au client accompagné d'un code HTTP.

Un échange client-serveur en Rest
Un identifiant de la ressource
Avec le Rest, on utilise le protocole HTTP. On va donc naturellement utiliser les URL (Uniforme Ressource Locator) afin de pouvoir executer des actions sur des ressources distantes. Il existe deux types d'URL :- Les URL member qui désigne une seule ressource, par exemple un livre
- Les URL collection qui désignent une liste ou un ensemble de resssource, par exemple une bibliothèqye, un ensemble de livre
Si je veux accéder a une ressource qui correspond à tous les livres d'une bibliothèque : http://mywebsite.com/books Si je veux accéder a une ressouce qui est le livre avec d'isbn de 87 de ma bibliothèque : http://mywebsite.com/books/87 Si je veux accéder a une ressource qui correspond aux commentaires d'un livre de ma bibliothèque : http://mywebsite.com/books/87/comments
Les verbes HTTP
Le troisième principe d’une architecture REST est d’utiliser les verbes HTTP existants plutôt que d’inclure l’opération dans l’URI de la ressource. Ainsi, généralement pour une ressource, il y a 4 opérations possibles (CRUD) :- Créer (create)
- Afficher (read)
- Mettre à jour (update)
- Supprimer (delete)
HTTP propose les verbes correspondant :
- POST permet de creer une ressource de deux manières possibles
- Soit en passant les paramètres dans le coeur de la requete
- Soit en passant les patamètres dans les champs de l'URL
- GET permet de lire, de récuprer une ressource du serveur. Le serveur renverra le code HTTP 200 en cas de succès ou le code HTTP 404 en cas de ressource non trouvée
- PUT permet de mettre à jour une ressource déja présente sur le serveur.Le serveur renverra le code HTTP 200 en cas de succès,le code HTTP 404 en cas de ressource non trouvée ou le code 304 en cas de ressource non modifiée
- DELETE permet de supprimer une ressource présente sur le serveur. Le serveur renverra le code HTTP 200 en cas de succès ou le code HTTP 404 en cas de ressource non trouvée
Le serveur renverra le code HTTP 201 - Created en cas de succès ou le code HTTP 204 - No content en cas d'echec
Une représentation de la ressouce
Le serveur ne renvoie pas une ressource mais une représentation de la ressource. Avec Rest, contrairement a SoAP, il n'y a pas de format d'échange imposé. L'entete HTTP de la réponse contient le type Mime de la ressource ( champ Content Type de l'entête HTTP). De ce fait, une ressource peut avoir plusieurs représentations possibles.
- HTML
- JSON
- XML
Exemple

Une ressource en Json