REST - REpresentational State Transfer
REST est un moyen d'accéder aux documents et aux ressources distants selon une architecture logicielle simple, représentée par une API. Le Web (World Wide Web) est une application de l'architecture REST.
L'architecture REST n'utilise pas nécessairement HTTP ou le Web.
Cette architecture se définit ainsi:
- Les états et fonctions d'une application distante sont considérées comme des ressources.
- Chaque ressource est accessible uniquement selon un format d'adresse standard. Ce sont des liens hypertextes (ou hypermedia).
Sous HTTP se sera une URI.
- Les ressources ont une interface standard dans laquelle les opérations et types de données sont précisément définis. XML ou JSON par exemple, ou HTML.
- L'échange de données se fait selon un protocole qui a les propriétés suivantes:
- Client-serveur.
- Sans états (représentés par des variables).
- Permet la mise en cache.
- En couches logicielles multiples.
- Indépendance de l'interface aux services ajoutés tels que proxies, firewalls et autres.
Fonctionnement sous HTTP
Des commandes HTTP permettent d'accéder aux ressources d'un serveur: GET et POST.
La première sert à lire, par exemple charger une page, la seconde sert à écrire, par exemple envoyer les données d'un formulaire au serveur, où un script les traite.
D'autres commandes existent encore mais sont peu utilisées: PUT (remplacer) et DELETE (effacer).
L'utilisation de cookies de session, en conservant des données relative au service, annule la propriété "sans état" et peut rendre le service moins efficace.
Alternatives
SOAP et RPC avec XML ou JSON pour le format de fichier.
WebSockets peut aussi être une alternative à l'architecture REST. WebSockets permet les notifications par le serveur, ce qui n'entre pas dans le cadre de l'architecture REST. Il convient mieux aussi pour les échanges rapides et constants, et REST pour des requêtes plus ponctuelles.
Avantages de REST
- Plus facile à mettre en oeuvre que les alternatives classiques (on ne parle pas de WebSockets).
- Il suffit d'un navigateur pour accéder à un service.
- Mise en cache des ressources, donc accélération des opérations.
- Moins de concommation mémoire.
- Possibilité de répartir les requêtes sur plusieurs serveurs. Cela grâce à l'absence d'états.
- Utilisation de formats standards comme HTML ou XML assure la compatibilité dans le temps.
- On peut échanger des requêtes entre diverses applications ou média car elle sont représentées par des URI.
Inconvénients
- Les données nécessaires à l'utilisation du service web doivent être conservées localement.
- Moins sûr que les architectures basées sur un protocole comme SOAP.
Références et ressources
- Thèse de Roy-Fielding. Traduction du document qui a inspiré l'architecture REST. Original en anglais.
|
|
|
