Interopérabilité Architecture REST
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)
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
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>
Méthodes standards Pour toutes les ressources une m ême interface GET Récupère une représentation S ûre et idempotente PUT Mettre à jour ou créer une ressource à  cette  URI Idempotente DELETE Idempotente POST Ni s ûre, ni idempotente
GET http://desanti.org/cahiers/0109 <TEI xml:id=&quot;cahiers_0109_&quot;> <facsimile> <surface xml:id=&quot;cahiers_0109_pages_0001&quot;> <graphic url=&quot;cahiers/0109/0001_high.jpeg&quot;/> <graphic url=&quot;cahiers/0109/0001_low.jpeg&quot;/> </surface> … <surface xml:id=&quot;cahiers_0109_pages_0138&quot;> <graphic url=&quot;cahiers/0109/0138_high.jpeg&quot;/> <graphic url=&quot;cahiers/0109/0138_low.jpeg&quot;/> </surface> </facsimile> </TEI> <TEI xml:id=&quot;cahiers_0109_pages_0006_inserts_001_&quot;> <facsimile> <surface xml:id=&quot;cahiers_0109_pages_0006_inserts_001_pages_0001&quot;> <graphic url=&quot;cahiers/0109/0006_001/0001_high.jpeg&quot;/> <graphic url=&quot;cahiers/0109/0006_001/0001_low.jpeg&quot;/> </surface> …
PUT Cahiers remplacer ou créer la ressource Cahiers/xxxx … Pages … Pages/xxxx … Inserts … Inserts/xxx …
DELETE Cahiers supprime la collection Cahiers/xxxx supprime le cahier Pages … Pages/xxxx … Inserts … Inserts/xxx …
POST Cahiers ajouter un cahier aux cahiers Cahiers/xxx nil Pages ajouter une page aux pages Pages/xxx nil Inserts ajouter un insert aux inserts Inserts/xxx nil
Méthodes standards Faire de l’application une partie du Web Les clients doivent implémenter les quatre méthodes du protocole HTTP. dir &quot;cahiers&quot; [  path $ \numCahier -> [  … ] ,get $ asXml (getUserCahiers u) $ withRoot &quot;teiCorpus&quot; >>> withId &quot;result&quot; ,methodSP POST $ request $ \(d::TeiCorpuss) -> (webUpdate $ PostCahiers u d) >> okXml &quot;<r>ok</r>&quot; ,method DELETE $ (webUpdate $ DelCahiers u) >> okXml &quot;<r>ok</r>&quot; ]
Représentations des ressources Le client doit conna ître le format des données S’ils existent, choisir des standards ! TEI, EAD, etc.
Synthèse noms verbes Types  de  contenu
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
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)

Rest pour l'interopérabilité

  • 1.
  • 2.
    Principes A chaqueressource un identifiant Beaucoup de liens entre les ressources Des méthodes standards Standards pour la représentation des ressources Sans état (c ôté serveur)
  • 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
  • 4.
    liens « Hypermedia asthe 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>
  • 5.
    Méthodes standards Pourtoutes les ressources une m ême interface GET Récupère une représentation S ûre et idempotente PUT Mettre à jour ou créer une ressource à cette URI Idempotente DELETE Idempotente POST Ni s ûre, ni idempotente
  • 6.
    GET http://desanti.org/cahiers/0109 <TEIxml:id=&quot;cahiers_0109_&quot;> <facsimile> <surface xml:id=&quot;cahiers_0109_pages_0001&quot;> <graphic url=&quot;cahiers/0109/0001_high.jpeg&quot;/> <graphic url=&quot;cahiers/0109/0001_low.jpeg&quot;/> </surface> … <surface xml:id=&quot;cahiers_0109_pages_0138&quot;> <graphic url=&quot;cahiers/0109/0138_high.jpeg&quot;/> <graphic url=&quot;cahiers/0109/0138_low.jpeg&quot;/> </surface> </facsimile> </TEI> <TEI xml:id=&quot;cahiers_0109_pages_0006_inserts_001_&quot;> <facsimile> <surface xml:id=&quot;cahiers_0109_pages_0006_inserts_001_pages_0001&quot;> <graphic url=&quot;cahiers/0109/0006_001/0001_high.jpeg&quot;/> <graphic url=&quot;cahiers/0109/0006_001/0001_low.jpeg&quot;/> </surface> …
  • 7.
    PUT Cahiers remplacerou créer la ressource Cahiers/xxxx … Pages … Pages/xxxx … Inserts … Inserts/xxx …
  • 8.
    DELETE Cahiers supprimela collection Cahiers/xxxx supprime le cahier Pages … Pages/xxxx … Inserts … Inserts/xxx …
  • 9.
    POST Cahiers ajouterun cahier aux cahiers Cahiers/xxx nil Pages ajouter une page aux pages Pages/xxx nil Inserts ajouter un insert aux inserts Inserts/xxx nil
  • 10.
    Méthodes standards Fairede l’application une partie du Web Les clients doivent implémenter les quatre méthodes du protocole HTTP. dir &quot;cahiers&quot; [ path $ \numCahier -> [ … ] ,get $ asXml (getUserCahiers u) $ withRoot &quot;teiCorpus&quot; >>> withId &quot;result&quot; ,methodSP POST $ request $ \(d::TeiCorpuss) -> (webUpdate $ PostCahiers u d) >> okXml &quot;<r>ok</r>&quot; ,method DELETE $ (webUpdate $ DelCahiers u) >> okXml &quot;<r>ok</r>&quot; ]
  • 11.
    Représentations des ressourcesLe client doit conna ître le format des données S’ils existent, choisir des standards ! TEI, EAD, etc.
  • 12.
    Synthèse noms verbesTypes de contenu
  • 13.
    Sans état Ausein 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
  • 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)