Laboratoire d'InfoRmatique en Image et Systèmes d'informationLIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université Lumière Lyon 2/Ecole Centrale de Lyon
Université Claude Bernard Lyon 1, bâtiment Nautibus43, boulevard du 11 novembre 1918 — F-69622 Villeurbanne cedex
http://liris.cnrs.fr
UMR 5205
ISH - 26/11/2008
ISH - 26/11/2008
Interopérabilité
Architecture REST
ISH - 26/11/2008 2
Principes
A chaque ressource un identifiant
Beaucoup de liens entre les ressources
Des méthodes standards
Standards pour la représentation des ressources
Sans état (côté serveur)
ISH - 26/11/2008 3
identifiants
URI : identifiant unique et global
http://desanti.org/cahiers
http://desanti.org/users/peportier/cahiers/0127
http://desanti.org/cahiers/0112/pages/0002
http://desanti.org/cahiers/0112/pages/0002/inserts
Partage, marque-page, etc.
Web machine - machine
ISH - 26/11/2008 4
liens
« Hypermedia as the engine of the application state »
Liens + URI ~~> interopérabilité
Le serveur fournit des liens au client
Le client suit un lien pour changer l’état de l’application
<p>voir <ref @target=http://desanti.org/cahiers/0112/pages/0003»> la page 3 du cahier 112 </ref></p>
ISH - 26/11/2008 5
Méthodes standards
Pour toutes les ressources une même interface
GETRécupère une représentationSûre et idempotente
PUTMettre à jour ou créer une ressource à cette URIIdempotente
DELETEIdempotente
POSTNi sûre, ni idempotente
ISH - 26/11/2008 6
GET
http://desanti.org/cahiers/0109 <TEI xml:id="cahiers_0109_"> <facsimile> <surface xml:id="cahiers_0109_pages_0001"> <graphic url="cahiers/0109/0001_high.jpeg"/> <graphic url="cahiers/0109/0001_low.jpeg"/> </surface> … <surface xml:id="cahiers_0109_pages_0138"> <graphic url="cahiers/0109/0138_high.jpeg"/> <graphic url="cahiers/0109/0138_low.jpeg"/> </surface> </facsimile> </TEI> <TEI xml:id="cahiers_0109_pages_0006_inserts_001_"> <facsimile> <surface xml:id="cahiers_0109_pages_0006_inserts_001_pages_0001"> <graphic url="cahiers/0109/0006_001/0001_high.jpeg"/> <graphic url="cahiers/0109/0006_001/0001_low.jpeg"/> </surface> …
ISH - 26/11/2008 7
PUT
Cahiersremplacer ou créer la ressourceCahiers/xxxx…Pages…Pages/xxxx…Inserts…Inserts/xxx…
ISH - 26/11/2008 8
DELETE
Cahierssupprime la collectionCahiers/xxxxsupprime le cahierPages…Pages/xxxx…Inserts…Inserts/xxx…
ISH - 26/11/2008 9
POST
Cahiersajouter un cahier aux cahiersCahiers/xxxnilPagesajouter une page aux pagesPages/xxxnilInsertsajouter un insert aux insertsInserts/xxxnil
ISH - 26/11/2008 10
Méthodes standards
Faire de l’application une partie du Web
Les clients doivent implémenter les quatre méthodes du protocole HTTP.
dir "cahiers" [ path $ \numCahier -> [ … ] ,get $ asXml (getUserCahiers u) $ withRoot "teiCorpus" >>> withId "result"
,methodSP POST $ request $ \(d::TeiCorpuss) -> (webUpdate $ PostCahiers u d) >> okXml "<r>ok</r>"
,method DELETE $ (webUpdate $ DelCahiers u) >> okXml "<r>ok</r>" ]
ISH - 26/11/2008 11
Représentations des ressources
Le client doit connaître le format des données
S’ils existent, choisir des standards !
TEI, EAD, etc.
ISH - 26/11/2008 12
Synthèse
noms
verbes
Types de
contenu
ISH - 26/11/2008 13
Sans état
Au sein d’une ressource
Côté client
Le serveur n’a pas à retenir les états des communications avec ses différents clients.
Passage à l’échelle
Indépendance vis-à-vis des changements côté serveur
ISH - 26/11/2008 14
REST ?
Défini, dans son mémoire de thèse, par R.T. Fielding
Architecte du protocole HTTP et des URIs
Définit un « style d’architecture » comme la donnée d’un ensemble de contraintes.
Canal nommé, filtres, client / serveur, objets distribués, … REST
Une instance de ce dernier style : le Web (HTTP, URIs, standards de données)
Top Related