Actualités

[11/04/2014] Smile gagne un Jedox Award

Smile reçoit le trophée de Meilleur Partenaire Jedox de l'année.

[10/04/2014] Smile co-organisateur du Bargento 2014

Smile et NBS System s’associent pour l’organisation du Bargento qui se tiendra le 7 octobre prochain à Paris.

[18/03/2014] Smile participe à l’événement e-commerce One to One

Smile sera présent à l’événement e-commerce One to One, le rendez-vous incontournable des leaders du e-commerce, du 18 au 20 mars 2014 à Monaco.

Toutes les actualités picto
       

Vous avez besoin de mettre à jour votre Lecteur Flash Flash 7

Guillemet ouvrant l'actualité des solutions
et des technologies open source Guillemet fermant
picto

REST, une affaire de style

REST n'est ni un langage ni un protocole. REST est un style d'architecture client/serveur inventé par Roy Fielding. Dans ce style d'architecture, des services exposent les fonctionnalités à travers un ensemble de ressources identifiables, et proposent des méthodes pour accéder et manipuler l'état de ces ressources.

Les principes de REST :

  • Ressource : quelque chose d'identifiable (un article, un fichier, une personne, ...)
  • Représentation des ressources : c'est le format d'échange entre le client et le serveur.
  • URI (Uniform Resource Identifier) est utilisé pour adresser les ressources.
  • HTTP est le protocole de communication entre le client et le serveur. La communication est sans état : le serveur ne conserve pas l'état du client

Ressources

En général, les ressources sont représentés en XML, json ou YAML, mais ca peut être du texte, une image, ... tout dépend du besoin. Une même ressource peut être représentée sous différent format, le service choisit le bon format en fonction des Types MIME supportés par le client, d'un paramètre ,...

URI

L'URI permet d'adresser une ressource, c'est à dire la nommer et l'identifier. Par exemple :

  • http://server/articles correspond à la ressource liste d'articles
  • http://server/articles/article-rest correspond à l'article dont l'identifiant est article-rest
  • http://server/articles/article-rest/commentaires correspond aux commentaires de l'article article-rest

Protocole HTTP

REST s'appuie sur les "verbes" HTTP pour définir les actions des services :

  • GET : Lire une ressource, équivalent d'un SELECT SQL.
  • DELETE : Supprimer une ressource, équivalent d'un DELETE SQL
  • PUT : Stocker la ressource envoyé dans la requête, équivalent d'un DELETE puis INSERT SQL.
  • POST : Demander au serveur de créer, mettre à jour ou exécuter un traitement sur une ressource. (pas d'équivalent SQL)

Les méthodes PUT et POST semblent à première vue similaire car elles permettent de créer et mettre à jour des ressources. La différence se situe au niveau de la définition même des 2 méthodes dans la norme HTTP :

  • PUT : L'URI représente la ressource à stocker. L'entité complète est transmise dans la requête, et le serveur stocke cette entité à l'adresse spécifiée. Si la ressource n'existe pas, la ressource est créée, sinon la ressource est remplacée. De plus, PUT est idempotent, ie "ne change pas quand on le multiplie par soi-même". L'état d'une ressource sera identitique après un ou plusieurs PUT successifs de la même entité.
  • POST : l'URI représente la ressource pour laquelle l'entité transmise devrait être considérée comme un subordonné, et le service détermine le traitement à effectuer. En d'autres termes, le service effectue un traitement sur les données transmises dans le POST. Par exemple, l'entité transmise peut être un fichier, la ressource un répertoire et le service consiste à ajouter le fichier dans le répertoire. A l'inverse de PUT, plusieurs POST n'auront pas le même effet qu'un seul POST.

Conclusion

Contrairement à d'autres services distants de type RPC (Remote Procedure Call) qui exposent des méthodes, REST expose des ressources. Les méthodes HTTP standard permettent alors de manipuler les ressources. Ainsi, à partir de l'URI d'une ressource, GET permettra de lire la ressource, DELETE de la supprimer ....et ceci de manière universelle pour toutes les ressources.

Alexis Thaveau
picto