REST - Representational State Transfer

Les concepts

REST fournit un véritable modèle pour décrire le fonctionnement que devrait avoir le web aujourd’hui.

Un concept important dans REST est l'existence de ressources. Toute information qui peut être nommé peut être une ressource: un document, une page d'accueil d'un weblog, ou un résultat de recherche.

Chaque ressource peut être référencé par un identifiant (une URI).

Dans le but de manipuler ces ressources, les composants du réseau (clients et serveurs) communiquent via une interface normalisée (par exemple, HTTP) et s’échangent des représentations de ces ressources.

Par exemple, un client veut accéder à une ressource en utilisant l’URL suivante : www.amazon.fr/auteur/details

Une représentation de cette ressource est retournée, cela peut être un document HTML qui fournit des informations sur un auteur. La représentation (e.g., details.html) place le client de l’application dans un état. Si l'application cliente lance un appel sur un des liens de la représentation en cours detail.html, une autre ressource est appelée, donc une représentation est envoyée.

Ainsi, l'application cliente change d'état (State Transfer) pour chaque représentation de ressource.

Interagir avec les ressources

Ainsi, une application peut interagir avec une ressource par la connaissance de deux choses : l'identificateur de la ressource, et l'action nécessaire.

Elle n'a pas besoin de savoir s'il existe des caches, proxies, passerelles, firewalls, tunnels, ou toute autre chose entre elle et le serveur qui détient les informations.

L’application nécessite cependant de comprendre le format de l'information (sa représentation) a renvoyé, ce qui est typiquement un document HTML ou XML quelconque, même s'il peut être une image ou de tout autre contenu.

Les actions que l’application peut utiliser sont définies au niveau de l’interface uniforme entre les composants de l’application. Pour interagir avec ces ressources en général les méthodes clés autorisent chaque client à :

Ces actions s’apparentent aux méthodes CRUD en base de données ou les verbes HTTP : GET, POST, PUT et DELETE. Rest_def_getfile.gif

Pour résumer

Une ressource est un objet conceptuel qui a une identité, un état et un comportement. Un identificateur de ressources (sous la forme d'une URI) permet d'identifier la ressource qui pourrait être observable par l'intermédiaire de ses représentations. Une représentation (par exemple, une page Web ou un document) est quelque chose que l’on obtient à partir d'une ressource et non la ressource elle-même. Il est nécessaire de distinguer une ressource d'une autre.

Les concepts REST