Introduction
REST (Representational State Transfer) est une manière de construire une application pour les systèmes distribués comme le World Wide Web. Le terme a été inventé par Roy Fielding en 2000.
REST n’est pas un protocole ou un format, c’est un style d’architecture, c’est le style architectural original du Web.
Dans cette architecture, un composant lit ou modifie une ressource en utilisant une représentation de cette ressource. Une ressource est une chose nommable, qui peut évoluer avec le temps. Une représentation est une séquence d’octets, éventuellement accompagnée de métadonnées (séquence de nom/valeur). Un composant est un acteur, il est relié à d’autres composants et à des ressources par des canaux, qui permettent des interactions sans états.
L’application de cette architecture au Web se comprend sur quelques principes simples :
- l’URI est important : connaître l’URI doit suffire pour nommer et identifier une ressource ;
- HTTP fournit toutes les opérations nécessaires (GET, POST, PUT et DELETE, essentiellement) ;
- chaque opération est auto-suffisante : il n’y a pas d’état ;
- utilisation des standards hypermedia : HTML ou XML qui permettent de faire des liens vers d’autres ressources et d’assurer ainsi la navigation dans l’application REST sont souvent utilisés. Néanmoins, l’utilisation d’autres formats comme JSON ou autres est possible.