Rest pour l'interopérabilité

14
[email protected] Laboratoire d'InfoRmatique en Image et Systèmes d'information UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université Lumière Lyon 2/Ecole Centrale d Université Claude Bernard Lyon 1, bâtiment Nautibus 43, boulevard du 11 novembre 1918 — F-69622 Villeurbanne cedex http://liris.cnrs.fr UMR 5205 ISH - 26/11/2008 ISH - 26/11/2008 Interopérab ilité Architecture REST

description

présentation de 10 minutes donnée à l'ISH le 26/11/2008

Transcript of Rest pour l'interopérabilité

Page 1: Rest pour l'interopérabilité

[email protected]

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

Page 2: Rest pour l'interopérabilité

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)

Page 3: Rest pour l'interopérabilité

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

Page 4: Rest pour l'interopérabilité

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>

Page 5: Rest pour l'interopérabilité

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

Page 6: Rest pour l'interopérabilité

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> …

Page 7: Rest pour l'interopérabilité

ISH - 26/11/2008 7

PUT

Cahiersremplacer ou créer la ressourceCahiers/xxxx…Pages…Pages/xxxx…Inserts…Inserts/xxx…

Page 8: Rest pour l'interopérabilité

ISH - 26/11/2008 8

DELETE

Cahierssupprime la collectionCahiers/xxxxsupprime le cahierPages…Pages/xxxx…Inserts…Inserts/xxx…

Page 9: Rest pour l'interopérabilité

ISH - 26/11/2008 9

POST

Cahiersajouter un cahier aux cahiersCahiers/xxxnilPagesajouter une page aux pagesPages/xxxnilInsertsajouter un insert aux insertsInserts/xxxnil

Page 10: Rest pour l'interopérabilité

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>" ]

Page 11: Rest pour l'interopérabilité

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.

Page 12: Rest pour l'interopérabilité

ISH - 26/11/2008 12

Synthèse

noms

verbes

Types de

contenu

Page 13: Rest pour l'interopérabilité

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

Page 14: Rest pour l'interopérabilité

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)