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
|