Les Eléments de l’architecture REST : Les ressources

rest-ressources

Dans un ancien post, nous avons abordé la notion de l’importance des données dans l’architecture REST . Cette essence est assurée par les éléments fondamentaux de ce style. Dans ce premier article, nous allons parler de la notion de ressources :

Les ressources et les identificateurs de ressources

L’abstraction clé de l’information en REST est une « Ressource ». N’importe quelle information qui peut être nommée est une ressource : une image, un document, un service temporel (la météo d’aujourd’hui à Montréal), une collection d’autres ressources, un objet physique (une personne) etc. En d’autres termes, n’importe quel concept qui peut être la cible d’une référence d’un lien hypertexte doit s’adapter dans la notion de ressource.

Contrairement a ce qui vient en premier à l’esprit, Une ressource est une correspondance conceptuelle à un ensemble d’entités, et non l’entité correspondante à un moment donné.
Plus précisément, une ressource R est une fonction d’appartenance variable dans le temps. A un temps t, la ressource correspond à un ensemble d’entités ou de valeurs qui sont équivalentes. Les valeurs dans cet ensemble peuvent être des « représentations de ressource » et / ou des « identificateurs de ressource ».
Une ressource peut correspondre aussi à un ensemble vide. Ce qui permet les références de liens hypertextes avant la réalisation de ce concept. Une ressource peut être « statique » : C’est à dire qu’elle correspond au toujours au même ensemble de données, ou peut avoir un grand degré de variance envers leurs valeurs dans le temps.
La sémantique d’une ressource est donc la seule chose qui différencie une ressource d’une autre.
Par exemple, « l’application de la semaine dans le App store » est une correspondance dont les valeurs changent dans le temps. Par contre, « la meilleure application Ios de 2013 dans le store Canadien » est une correspondance statique. Ce sont donc deux ressources, même si elles correspondent à une même valeur à un moment donné. La distinction est nécessaire pour que ces deux ressources puissent être identifiées et referees indépendamment.
Un autre exemple de deux ressources distinctes est : « la dernière révision du code source » et « la révision 1.0.1 »

Les avantages des ressources

La définition abstraite d’une ressource permet :

  • la généralisation en englobant plusieurs sources d’information sans toutefois les distinguer par type ou par implémentation
  • la liaison tardive de la référence à une représentation, de sorte que la négociation de contenu aie lieu en fonction des caractéristiques de la requête
  • se référer au concept et non à une représentation particulière de ce concept, afin de pouvoir changer la représentation sans changer les liens qui la référence

Identifiant de ressource

REST utilise un « identifiant de ressource » pour identifier une ressource particulière impliquée dans une interaction entre composants. Indépendamment du type de l’association ou du logiciel effectuant la requête, REST offre une interface unique pour accéder et manipuler une valeur d’une ressource. L’auteur de la ressource choisit son identificateur de ressource qui correspond le mieux au concept à identifier. Quand l’information change ou disparaît, les références a cet identifiant deviennent donc des « liens morts ».

Voilà pour cette présentation théorique des ressources dans REST. La notion de représentation et connecteurs sera le sujet du prochain article ! Soyez au rendez vous !

Anis Berejeb

Anis est avant tout un passioné de l'agilité et du développement. Avec plus de 15 ans dans le domaine du développement web, son expertise combine des connaissances accrues dans l'ensemble des notions partant du développement logiciel jusqu'à l'organisation des équipes dans les environnements agiles à grande échelle.

You may also like...