REST

REST

Representational State Transfer

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). Une composant est un acteur, il est relié à d'autres composants et à des ressources par des canaux, qui permettent des interactions sans états.[1]

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[2] ;
  • 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.

Sommaire

Description de REST

Ce style architectural n'est pas limité à la réalisation d'application pour un utilisateur humain. Il est de plus en plus utilisé pour la réalisation d'architectures orientées services utilisant des services Web destinés à la communication entre machines. REST dans ce cas là se pose en alternative au style architectural RPC et à la plupart des cas d'utilisation de SOAP (bien que l'on puisse imaginer des architectures orientées services de style REST mais utilisant la technologie SOAP), alternative censée être plus simple à mettre en œuvre. Les systèmes qui suivent les principes REST de Fielding sont souvent appelés RESTful.

Même si les réponses aux requêtes sont, comme pour SOAP et XML-RPC, souvent en XML, cela n'a rien d'obligatoire. Des réponses JSON ou en objets Java sérialisés sont parfaitement acceptables .

La thèse de Roy Fielding précise les avantages de ce style architectural par rapport à d'autres styles d'architectures d'applications web. Citons entre autres :

  • L'application est plus simple à entretenir, car les liens sont mieux structurés, et de façon universelle.
  • L'absence d'état sur le serveur conduit à une consommation de mémoire inférieure et donc à une capacité plus grande de répondre à un grand nombre de requêtes simultanées.
  • L'absence d'état sur le serveur rend le fonctionnement plus simple à appréhender. Le résultat d'une requête ne dépend pas de variables cachées difficilement identifiables. Cela conduit à une mise au point plus simple.
  • L'absence d'état sur le serveur permet une répartition des requêtes sur plusieurs serveurs avec une meilleure granularité et de manière plus souple. Cela permet aussi une meilleure tolérance aux pannes d'un des serveurs.
  • Le respect de la philosophie du protocole HTTP (à la différence de la manière dont est habituellement utilisé SOAP) conduit à une architecture plus cohérente et plus simple.
  • l'utilisation d'URI comme représentant d'une ressource, permet la mise en place de serveurs cache.

Inconvénients

Les principaux inconvénients de REST sont la nécessité pour le client de conserver localement toutes les données nécessaires au bon déroulement d'une requête, ce qui induit une consommation en bande passante réseau plus grande, et le manque à gagner des capacités du serveur. S'il est possible de coupler une application web REST à un service extérieur assurant la permanence des données lors de la durée d'une session, par exemple une base de données ou un cookie, on pourrait cependant considérer que l'utilisation d'un tel service pour gérer des données relatives à une session ouverte par le client serait en violation de la philosophie de REST. REST préfèrera l'utilisation de tableaux codés en Javascript présents dans la mémoire du navigateur client.

Par ailleurs beaucoup d'applications, bien que ne respectant pas scrupuleusement toutes les contraintes de l'architecture REST, sont largement inspirées par elle.

Bibliographie

  • RESTful Web Services, par Leonard Richardson et Sam Ruby, est un ouvrage en anglais sorti en mai 2007.

Implémentation

Voir aussi

Articles connexes

Liens externes

Notes et références

  1. (fr) Thèse de Roy T. Fielding - Traduction du Chapitre 5 : REST 5.2.1.1 Ressources et identifiants de ressource, 5.2.1.2 Représentations, 5.2.2 Connecteurs
  2. (en) URI/Resource Relationships (Relations URI / Ressources), dans Architecture of the World Wide Web, W3C Recommendation 15 December 2004


  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Representational State Transfer ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article REST de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • Rest — Rest, n. [AS. rest, r[ae]st, rest; akin to D. rust, G. rast. OHG. rasta, Dan. & Sw. rast rest, repose, Icel. r[ o]st the distance between two resting places, a mole, Goth. rasta a mile, also to Goth. razn house, Icel. rann, and perhaps to G. ruhe …   The Collaborative International Dictionary of English

  • rest*/*/*/ — [rest] noun I 1) [singular] the part of something that remains, or the people or things that remain I m not really hungry – do you want the rest?[/ex] Rain will spread to the rest of the country by evening.[/ex] The rest of the attackers were in… …   Dictionary for writing and speaking English

  • Rest — (von lateinisch: restare = „übrig bleiben“/„übrigbleiben“, aus: re = „zurück“, „wieder“ sowie stare = „stehen“; spätmittelhochdeutsch: rest[e]; italienisch: resto = „übrig bleibender Geldbetrag“) bedeutet allgemein etwas, das übrig geblieben ist …   Deutsch Wikipedia

  • rest — vi: to bring to an end voluntarily the introduction of evidence in a case the defense rest s vt: to cease presenting evidence pertinent to (a case) I rest my case Merriam Webster’s Dictionary of Law. Merriam Webster. 1996 …   Law dictionary

  • rest# — rest n Rest, repose, relaxation, leisure, ease, comfort are comparable when they mean freedom from toil or strain. Rest, the most general term, implies withdrawal from all labor or exertion and suggests an opposition to the term work; it does not …   New Dictionary of Synonyms

  • Rest — (r[e^]st), v. i. [imp. & p. p. {Rested}; p. pr. & vb. n. {Resting}.] [AS. restan. See {Rest}, n.] 1. To cease from action or motion, especially from action which has caused weariness; to desist from labor or exertion. [1913 Webster] God . . .… …   The Collaborative International Dictionary of English

  • REST — (von lateinisch re stare = übrig bleiben) bedeutet allgemein etwas, das übrig geblieben ist sowie in der Mathematik das, was bei der Division übrigbleibt, siehe Division mit Rest in der Chemie das Gegenstück zur funktionellen Gruppe eines… …   Deutsch Wikipedia

  • rest — REST, resturi, s.n. 1. Ceea ce rămâne dintr un tot, dintr un ansamblu din care cea mai mare parte a fost consumată, îndepărtată, luată, scoasă; rămăşiţă. 2. Tot ceea ce nu face parte din rândul lucrurilor menţionate anterior. 3. Sumă de bani care …   Dicționar Român

  • rest — Ⅰ. rest [1] ► VERB 1) cease work or movement in order to relax or recover strength. 2) allow to be inactive in order to regain or save strength or energy. 3) place or be placed so as to stay in a specified position: his feet rested on the table.… …   English terms dictionary

  • rest — rest2 [rest] n. [ME < MFr reste < OFr rester, to rest, remain < L restare, to stop, stand, rest, remain < re , back + stare, to STAND] 1. what is left after part is taken away; remainder 2. [with pl. v.] the others: Used with the vi.… …   English World dictionary

  • rest — [n1] inactivity break, breather*, breathing space*, calm, calmness, cessation, coffee break*, comfort, composure, cutoff, downtime*, doze, dreaminess, ease, forty winks*, halt, holiday, hush, idleness, interlude, intermission, interval, leisure,… …   New thesaurus

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”