Web Service REST

REpresentational State Transfer.

REST est un style d'architecture de services web qui utilise les standards Web déjà très utilisés (plus spécifiquement HTTP). Cependant REST il peut s'appliquer à d'autres médias que le WEB.
REST n'utilise pas SOAP, WSDL ou UDDI, et parfois même pas XML. Mais il utilise des conventions inspirés de HTTP.


Avec cette architecture, toute information qui peut être nommée s'appelle une ressource. L'appel d'un service (i.e. l'appel d'une ressource) se fait par un url. Le passage de paramètre se fait exactement comme avec une application web conventionnelle.

Dans le protocole HTTP nous retrouvons 4 méthodes principales qui permettent d'effectuer des traitement sur les données et qui sont définit dans l'architecture REST:


  • GET : Retrieve (Récupérer). On utilise GET pour un appel de procédure ne changeant pas l'état du système distant et qui peut être répétés sans changer à la réponse. On utilise aussi GET pour appeler un document.
  • POST : Create (Créer). On utilise POST pour un appel de procédure nécissitant des paramètre plus complexe (sérialisation d'objet, ou xml).
  • PUT : Update (Modifier).On utilise PUT pour la création d'éléments.
  • DELETE : Delete (Supprimer). On utilise DELETE pour destruction.
  •  HEAD : informations sur une ressource.

La sérialisation d'objet ou de messages peut se faire en xml, mais aussi en texte seulement, en JSON (Javascript Object Notation) ou YAML (Yet Another Markup Language).

La sécurité se fait de la même manière qu'une application Web conventionnelle (SSL, Sessions, cookies, etc).

Exemple
Prenonns l'exemple d'une application de gestion des utilisateurs.
Les utilisateurs sont identifiés en tant que ressources par un schéma d'URI du type : http://server/user/id, où id est une clef permettant d'identifier de manière unique la ressource, par exemple le login pour un utilisateur.
La liste des utilisateurs est accessible par le schéma d'URI http://server/users (notez le "s").
Les différentes actions possibles sur les ressource sont :


GET: http://server/users Récupère la liste des utilisateurs 200 OK
POST: http://server/users Création d'un nouvel utilisateur 201 Created
GET: http://server/user/id_user Récupère la représentation de l'utilisateur identifié par id_user 200 Ok, 404 resource not found
PUT: http://server/user/id_user Modifie un utilisateur 200 Ok, 404 ressource not found
DELETE: http://server/user/id_user Efface un utilisateur 200 Ok, 404 ressource not found

Aucun commentaire:

Enregistrer un commentaire