TUTORIELS 
L'architecture REST

Page 1 | 2

Manière de représenter la logique de l'Internet, REST définit également des bonnes pratiques de création de service Web, tout en simplifiant leur élaboration par l'utilisation de standards historiques.

 (7 juillet 2003)
 

Un service RESTful
Voyons comment construire et utiliser un service suivant le style REST.

Un service REST devrait respecter les "conventions" suivantes :
- toutes les ressources devant être exposées au travers du service doivent être correctement identifiées, et de manière unique. Chaque ressource devra se voir assigner une URL. Qui plus est, l'URL en question devra être de la forme http://www.site.com/contenus/1789 plutôt que http://www.site.com/contenus.php?id=1789.
- les ressources doivent être catégorisées selon leurs possibilités offertes à l'application cliente : ne peut-elle que recevoir une représentation (GET) ou peut-elle modifier/créer une ressource (POST, PUT, DELETE) ?
- chaque ressource devrait faire un lien vers les ressources liées.
- la manière dont fonctionne le service sera décrite au sein d'un document WSDL, ou simplement HTML.

Prenons une entreprise de jouets qui veut permettre à ses clients 1) d'obtenir une liste des jouets disponibles à la vente, 2) d'obtenir des informations sur un jouet précis.

1) La liste des jouets est disponible à l'URL suivante :

http://www.youpilesjouets.com/jouets/

La manière dont le service génère cette liste n'est pas important pour le client : tout ce qu'il sait, c'est que cette adresse lui renverra la liste. La société est donc libre de modifier la manière dont la liste est générée, tant qu'elle l'est. C'est le principe du "couplage lâche" (loose coupling).

Le client reçoit une réponse sous la forme suivante :

<?xml version="1.0"?>
  <p:Jouets xmlns:p="
http://www.youpilesjouets.com/" xmlns:xlink="http://www.w3.org/1999/xlink">
    <Jouet id="0001" xlink:href="
http://www.youpilesjouets.com/jouets/0001"/>
    <Jouet id="0002" xlink:href="
http://www.youpilesjouets.com/jouets/0002"/>
    <Jouet id="0003" xlink:href="
http://www.youpilesjouets.com/jouets/0003"/>
[...]
  </p:Jouets>

La liste des jouets contient des liens pour obtenir des informations sur chaque jouet. C'est là la clef de REST : le lien entre les ressources. Le client peut ensuite choisir parmi les liens proposés pour aller plus loin.

2) Les détails d'un jouet se trouvent à l'URL :

http://www.youpilesjouets.com/jouets/00002/

Ce qui renvoi la réponse :

<?xml version="1.0"?>
  <p:Jouet xmlns:p="http://www.youpilesjouets.com" xmlns:xlink="http://www.w3.org/1999/xlink">
    <Jouet-ID>0001</Jouet-ID>
    <Nom>Bisounours : Gros Câlin</Nom>
    <Description>Coeur sur le ventre</Description>
    <Details xlink:href="
http://www.youpilesjouets.com/jouets/00002/details"/>
    <CoutUnitaire monnaire="EUR">30</CoutUnitaire>
    <Quantite>37</Quantite>
  </p:Jouet>

A nouveau, plus de ressources sont accessibles grâce à un lien...

Nous verrons dans un prochain article les avantages et inconvénients face à SOAP et XML-RPC...

Page 1 | 2

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page