{"id":92,"date":"2009-03-25T11:48:54","date_gmt":"2009-03-25T10:48:54","guid":{"rendered":"http:\/\/loicmathieu.free.fr\/wordpress\/?p=92"},"modified":"2009-11-11T16:43:08","modified_gmt":"2009-11-11T14:43:08","slug":"rest-architecture-orientee-ressource","status":"publish","type":"post","link":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/rest-architecture-orientee-ressource\/","title":{"rendered":"REST &#8211; Architecture Orient\u00e9e Ressource"},"content":{"rendered":"<p>Au menu aujourd&#8217;hui, un sujet tr\u00e8s tendance: REST. Abord\u00e9\u00a0 par le biais de l&#8217;Architecture Orient\u00e9 Ressource (ou ROA: Resource Oriented Architecture), autrement dit, comment cr\u00e9er une architecture de service bas\u00e9 sur REST.<\/p>\n<h2>D\u00e9finitions<\/h2>\n<p>Comme toujours, commen\u00e7ons par quelques d\u00e9finitions. Je vais les faire assez th\u00e9orique sinon apr\u00e8s, il ne me restera plus rien \u00e0 dire :)<\/p>\n<ul><li><strong>SOA <\/strong>: Service Oriented Architecture : Architecture orient\u00e9e service.<\/li>\n\n<li><strong>ROA <\/strong>: une architecture SOA bas\u00e9e sur des services web RESTful\u00a0 au lieu des services web \u201clourd\u201d comme les services web SOAP.<\/li>\n\n<li><strong>Services web RESTful <\/strong>: services web qui adh\u00e8rent compl\u00e8tement aux concepts et aux standards REST (acc\u00e9der une ressource dans un mode &#8216;service&#8217;).<\/li>\n\n<li><strong>REST<\/strong> : Representational State Transfer.<\/li>\n\n<li><strong>Ressource <\/strong>: notion de base de l&#8217;architecture REST, elle est d\u00e9finie par son URL. C&#8217;est ce \u00e0 quoi on veut acc\u00e9der. via l&#8217;URL. Un exemple de ressource est une news accessible via l&#8217;URL http:\/\/monsite.com\/news\/1<\/li>\n\n<li><strong>Repr\u00e9sentation <\/strong>: comme son nom l&#8217;indique, c&#8217;est la repr\u00e9sentation d&#8217;une ressource. Par exemple, http:\/\/monsite.com\/news\/1 peut \u00eatre une page HTML qui repr\u00e9sente la ressource &#8216;news num\u00e9ro 1&#8217;.<\/li>\n<\/ul>\n<h2>Le principe de REST<\/h2>\n<p>REST est un design pattern (ou patron de conception) pour l&#8217;impl\u00e9mentation de syst\u00e8me connect\u00e9. Ce n&#8217;est ni une technologie ni un standard; c&#8217;est un type d&#8217;architecture pour l&#8217;exposition de ressources sur le web.<\/p>\n<p>L&#8217;architecture RESTful adh\u00e8res \u00e0 plusieurs principes :<\/p>\n<ul><li>Les requ\u00eates sont client-serveur<\/li>\n\n<li>Les requ\u00eates sont stateless (sans \u00e9tat).<\/li>\n\n<li>Clients et serveurs adh\u00e8rent \u00e0 une interface uniforme. Toutes les ressources sont acc\u00e9d\u00e9e via une interface g\u00e9n\u00e9rique: les m\u00e9thodes HTTP: GET, POST, PUT, DELETE, HEAD ou OPTION.<\/li>\n\n<li>Les clients acc\u00e8dent \u00e0 des ressources nomm\u00e9es. le syst\u00e8me comprend des ressources nomm\u00e9es en utilisant des URL, comme des URL HTTP (mais ne se limitant pas \u00e0 des URL HTTP). Pour faire simple: une ressources est repr\u00e9sent\u00e9e par une URL.<\/li>\n<\/ul>\n<h2>Mise en \u0153uvre<!--more--><\/h2>\n<h3>D\u00e9finition d&#8217;une strat\u00e9gie d&#8217;URL<\/h3>\n<p>Partie la plus importante d&#8217;une architecture REST, la strat\u00e9gie de cr\u00e9ation des URL vers les ressources. Son importance vient du fait que les URL d\u00e9finissent les ressources. Et qu&#8217;un bonne strat\u00e9gie dans la d\u00e9finition d&#8217;URL va simplifier l&#8217;utilisation des ressources dans un mode service.<\/p>\n<p>Voici un exemple, tir\u00e9e de best-practice autour de la d\u00e9finition des URL de ressources:<\/p>\n<ul><li> Les \u00e9l\u00e9ments d&#8217;une URL sont s\u00e9par\u00e9 par des slashs ( &#8216;\/&#8217;).<\/li>\n\n<li> Les \u00e9l\u00e9ments d&#8217;une URL vont du g\u00e9n\u00e9rique vers le sp\u00e9cifique (cat\u00e9gorie -&gt; sous-cat\u00e9gorie -&gt; produit).<\/li>\n\n<li> Les \u00e9l\u00e9ment d&#8217;un m\u00eame niveau (donc entre deux &#8216;\/&#8217;) sont s\u00e9par\u00e9 par des virgule (&#8216;,&#8217;)\u00a0 quand l&#8217;ordre des \u00e9l\u00e9ments \u00e0 de l&#8217;importance, par les point-virgule (&#8216;;&#8217;) sinon.<\/li>\n\n<li>Pas de verbe ou de nom d&#8217;op\u00e9ration dans l&#8217;URL.<\/li>\n\n<li>L&#8217;utilisation de param\u00e8tres de requ\u00eate (?nom=toto par exemple) est utilis\u00e9 uniquement en PUT ou POSt (pour la cr\u00e9ation d&#8217;une ressource donc).<\/li>\n<\/ul>\n<p>A ceux-xi on peut ajouter d&#8217;autres conseil qui ne font pas partie r\u00e9ellement des standard d&#8217;utilisation de REST mais qui permettent de faciliter l&#8217;utilisation de REST en tant qu&#8217;architecture de services web<\/p>\n<ul><li>Un num\u00e9ro de version en d\u00e9but d&#8217;URL facilite la cr\u00e9ation de repr\u00e9sentation diff\u00e9rente pour une m\u00eame ressource  dans le temps (lors de l&#8217;\u00e9volution du service)<\/li>\n\n<li>la fin de l&#8217;URL peut contenir la langue et le type de repr\u00e9sentation de la ressource .<\/li>\n\n<li>Un principe int\u00e9r\u00e9ssant, peut \u00eatre aussi de grouper ses ressource dans des sortes de package, le premier \u00e9l\u00e9ment de l&#8217;URL sera donc un nom de package (par exemple: catalogue, order, &#8230;)<\/li>\n<\/ul>\n<p>Voici quelques exemples:<\/p>\n<ol><li>GET http:\/\/host:port\/catalogue\/v1\/telephone\/htcdream.fr.html : ressource pour l&#8217;affichage en HTML de la fiche produit de l&#8217;HTC dream. C&#8217;est un service qui fait partie du package de service catalogue. On apprend aussi ici que l&#8217;HTC Dream fait partie de la cat\u00e9gorie t\u00e9l\u00e9phone.<\/li>\n\n<li>GET http:\/\/host:port\/catalogue\/v1\/telephonne.fr.html : ressource pour l&#8217;affichage en HTML de la cat\u00e9gorie &#8216;t\u00e9l\u00e9phone&#8217;.<\/li>\n\n<li>GET http:\/\/host:port\/news\/v1\/categories.fr.atom : affichage en flux ATOM de l&#8217;ensemble des cat\u00e9gories de news.<\/li>\n\n<li>GET http:\/\/host:port\/news\/v1\/categories\/eco.fr.fr : affichage de la cat\u00e9gorie \u00e9conomique des news.<\/li>\n\n<li>POST http:\/\/host:port\/news\/v1\/categories\/eco?name=&#8221;ma news&#8221;&amp;content=&#8221;c&#8217;est la crise&#8221; : cr\u00e9ation d&#8217;une news de nom &#8220;ma news&#8221; avec le contenue &#8220;c&#8217;est la crise&#8221; dans la cat\u00e9gorie &#8216;eco&#8217;<\/li>\n<\/ol>\n<h3>Gestion de multiple repr\u00e9sentation pour une ressource<\/h3>\n<p>En sp\u00e9cifiant une extension diff\u00e9rente dans l&#8217;URL, on peut demander \u00e0 notre application de services web des repr\u00e9sentation diff\u00e9rentes sur une ressource.<\/p>\n<p>Voici un exemples de repr\u00e9sentation utile qui peuvent \u00eatre impl\u00e9ment\u00e9e et une suggestion des extensions \u00e0 utiliser:<\/p>\n<ol><li><strong>.html<\/strong> : repr\u00e9sentation XHTML d&#8217;une ressource. Je conseil en plus l&#8217;utilisation des microformat, et l&#8217;int\u00e9gration d&#8217;une CSS par d\u00e9faut pour qu&#8217;elle soit directement testable. De mon avis c&#8217;est la repr\u00e9sentation pr\u00e9f\u00e9rable.<\/li>\n\n<li><strong>.fragment<\/strong> : Pareil que le &#8216;.html&#8217; Mais sans CSS et sans les tags  et . Tr\u00e8s utilise pour l&#8217;int\u00e9gration directe via ajax de fragement HTML.<\/li>\n\n<li><strong>.json<\/strong> : Repr\u00e9sentation JavaScript JSON. Pratique pour l&#8217;appel via Ajax, de plus en plus de framework g\u00e9rant le JSON.<\/li>\n\n<li><strong>.atom<\/strong> : flux RSS de type ATOM, conseill\u00e9 pour les listes<\/li>\n\n<li><strong>.txt<\/strong> : repr\u00e9sentation texte pour des ressources tr\u00e8s simple, ou des test basique<\/li>\n\n<li><strong>.xml<\/strong> : la repr\u00e9sentation XML a pour but l&#8217;int\u00e9gration via des langages \u00e9volu\u00e9, des flash ou du flex par exemple. Dans tout les cas o\u00f9 la ressource devra \u00eatre pars\u00e9 pour recr\u00e9er un objet c&#8217;est celle qui sera choisie.<\/li>\n<\/ol>\n<p>Lors de la d\u00e9finition de votre architecture orient\u00e9e services, vous choisirez les types de repr\u00e9sentation n\u00e9cessaire (m\u00eame si je vous conseil d&#8217;en utiliser le plus possible), n&#8217;oubliez pas que m\u00eame si votre architecture supporte toutes ces extensions, vous pouvez les impl\u00e9menter sur une ressource uniquement si cela est n\u00e9cessaire. Toutes les ressources ne doivent pas obligatoirement impl\u00e9menter toutes les repr\u00e9sentation.<\/p>\n<p>Mais pensez bien que si votre application est facilement testable, dans un browser par exemple gr\u00e2ce \u00e0 des flux ATOM et des repr\u00e9sentation HTML c&#8217;est un plus non n\u00e9gligeable. Je conseil donc l&#8217;utilisation de repr\u00e9sentation ATOM pour les listes et HTML pour les ressources.\nPour faciliter le tests, li\u00e9e le plus possible les ressources les unes entre les autres (une liste contient les liens vers les ressources qu&#8217;elle liste) et, par exemple, cr\u00e9er des flux ATOM de liste d&#8217;exemple de vos ressources (un flux ATOM \u00e0 la racine qui liste tout les package de ressource et un flux ATOM pour chaque package qui liste une s\u00e9rie d&#8217;exemple et votre application devient navigable facilement!)<\/p>\n<h3>Un catalogue de microformat<\/h3>\n<p>Les microformats ne font pas partie de la sp\u00e9cification REST et ne devrait peut-\u00eatre pas pas \u00eatre \u00e9voqu\u00e9 ici mais je pense qu&#8217;ils peuvent apporter un plus r\u00e9el dans l&#8217;aspect service.<\/p>\n<p>Un microformat HTML est un ensemble de tags HTML et de classes CSS qui permettent de d\u00e9finir un pattern r\u00e9utilisable. Ainsi, \u00e0 chaque fois qu&#8217;on veut repr\u00e9senter de mani\u00e8re HTML un objet, on utilise le m\u00eame ensemble de classes CSS et tags HTML ce qui permet de standardiser vos repr\u00e9sentation et de facilement reconna\u00eetre dans vos HTML tel ou tel objet.<\/p>\n<p>Pour en savoir plus, c&#8217;est ici: <a href=\"http:\/\/microformats.org\/\" target=\"_blank\"><a href=\"http:\/\/microformats.org\/\">http:\/\/microformats.org\/<\/a><\/a>. Ce site comprend des microformat utilis\u00e9 de par le web et certain design pattern pour la cr\u00e9ation de vos propre microformats.<\/p>\n<p>Un catalogue de microformat \u00e9tant juste l&#8217;ensemble des microformats utilis\u00e9 dans votre application (ou dans VOS applications). L&#8217;id\u00e9al \u00e9tant bien sur de fournir aux clients de vos application le catalogue en question et les explications sur ce dernier.<\/p>\n<h3>Gestion des erreurs<\/h3>\n<p>Il est conseill\u00e9 d&#8217;utiliser les erreurs standard HTTP. Donc, de retourner un statut diff\u00e9rent du statu 200 pour toute requ\u00eate menant \u00e0 une erreur. Il existe de nombreux statut disponible dans la sp\u00e9cification HTTP, pour les erreurs il faut utiliser les statuts dans les plages suivantes: 400 plage pour les erreurs client, 500 plage pour les erreurs serveur.<\/p>\n<p>Voici les erreurs que je vous conseil <strong>au minimum<\/strong> d&#8217;utiliser:<\/p>\n<ul><li>400: Bad Request: si la req\u00fbete est mal form\u00e9\u00a0 (un \u00e9l\u00e9ment manquand ou incorrecte dans l&#8217;URL)<\/li>\n\n<li>401: Permission denied: vous n&#8217;avez pas la permission d&#8217;acc\u00e9der \u00e0 cette ressource via cette op\u00e9ration\u00a0 (uniquement si la ressource est s\u00e9curis\u00e9e)<\/li>\n\n<li>404: Not Found: pas de ressources \u00e0 cette URL<\/li>\n\n<li>500: Server Error: une erreur s&#8217;est produite sur le serveur lors de l&#8217;appel \u00e0 la ressource (probl\u00e8me de base de donn\u00e9es par exemple)<\/li>\n<\/ul>\n<h3>Impl\u00e9mentation<\/h3>\n<p>L&#8217;impl\u00e9mentation peut se faire avec de nombreux technologie et framework diff\u00e9rent. Pour n&#8217;en citer que quelques un (principalement dan le monde Java, \u00e9tant d\u00e9veloppeut Java):<\/p>\n<ul><li><strong>RoR <\/strong>: Ruby On Rails contient une impl\u00e9mentation REST<\/li>\n\n<li><strong>Spring 3.0<\/strong> : la future version de Spring contient une impl\u00e9mentation REST de sa couche MVC<\/li>\n\n<li><strong>Jax-RS (JSR311)<\/strong> : la sp\u00e9cification Java pour les services web RESTFul: la version actuelle comporte de nombreux manque (repr\u00e9sentation unique, s\u00e9curit\u00e9, ..). Esp\u00e9rons que la future sp\u00e9cification 1.1 les comblera.<\/li>\n\n<li><strong>Jersey <\/strong>: impl\u00e9mentation de r\u00e9f\u00e9rence de la JSR 311<\/li>\n\n<li><strong>Restlet <\/strong>: pour moi un des framework JAVA les plus abouti et stable au niveau REST. C&#8217;est celui que j&#8217;ai choisit pour mettre en place chez mon client une application de services web RESTful<\/li>\n<\/ul>\n<p>Pour plus d&#8217;info sur Restlet et pour un exemple d&#8217;impl\u00e9mentation d&#8217;une architecture ROA, venez lire l&#8217;article que j&#8217;ai \u00e9crit \u00e0 ce sujet: <a title=\"Impl\u00e9menter une architecture de service web RESTfull avec Restlet et son extention Spring\" href=\"http:\/\/loicmathieu.free.fr\/wordpress\/index.php\/informatique\/implementer-une-architecture-de-service-web-restfull-avec-restlet-et-son-extention-spring\/\" target=\"_self\">Impl\u00e9menter une architecture de service web RESTfull avec Restlet et son extention Spring<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Au menu aujourd&#8217;hui, un sujet tr\u00e8s tendance: REST. Abord\u00e9\u00a0 par le biais de l&#8217;Architecture Orient\u00e9 Ressource (ou ROA: Resource Oriented Architecture), autrement dit, comment cr\u00e9er une architecture de service bas\u00e9 sur REST. D\u00e9finitions Comme toujours, commen\u00e7ons par quelques d\u00e9finitions. Je vais les faire assez th\u00e9orique sinon apr\u00e8s, il ne me restera plus rien \u00e0 dire \ud83d\ude42 SOA : Service Oriented Architecture : Architecture orient\u00e9e service. ROA : une architecture SOA bas\u00e9e sur des services web RESTful\u00a0 au lieu des services&#8230;<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/rest-architecture-orientee-ressource\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9],"tags":[92,151,93,11,88,86,89,90,91,14,87],"class_list":["post-92","post","type-post","status-publish","format-standard","hentry","category-informatique","tag-architecture","tag-informatique","tag-j2ee","tag-java","tag-microformat","tag-rest","tag-restful","tag-roa","tag-soa","tag-web","tag-webservice"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":269,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/implementer-une-architecture-de-service-web-restfull-avec-restlet-et-son-extention-spring\/","url_meta":{"origin":92,"position":0},"title":"Implementer une architecture de service web RESTfull avec Restlet et son extention Spring","author":"admin","date":"Thursday September 10th, 2009","format":false,"excerpt":"Cet article fait suite mon article REST - Architecture Orient\u00e9e Ressource en lui donnant une impl\u00e9mentation bas\u00e9 sur le framework Restlet. Le principe de Restlet : Restlet est un framework Java 5.0 qui ob\u00e9it aux standard RESTful et permet de cr\u00e9er facilement des application RESTful. Il remplace la sp\u00e9cification J2EE\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":761,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/cache-http-client-avec-cxf\/","url_meta":{"origin":92,"position":1},"title":"(Fran\u00e7ais) Cache HTTP Client avec CXF","author":"admin","date":"Thursday February  8th, 2018","format":false,"excerpt":"Sorry, this entry is only available in Fran\u00e7ais.","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":533,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/openesb-community-day-2011\/","url_meta":{"origin":92,"position":2},"title":"OpenESB Community Day 2011","author":"admin","date":"Thursday March 24th, 2011","format":false,"excerpt":"Le 03\/03\/2011 s'est d\u00e9roul\u00e9 \u00e0 Lille (exactement \u00e0 Polytech Lille \u00e0 Villeneuve d'Ascq) l'OpenESB Community Day. Une journ\u00e9e de conf\u00e9rence autour d'OpenESB centr\u00e9 sur la communaut\u00e9 de d\u00e9veloppeur et d'utilisateur. OpenESB est une impl\u00e9mentation Open Source d'un ESB (Enterprise Service Bus) d\u00e9velopp\u00e9 par Sun, qui a \u00e9t\u00e9 abandonn\u00e9 par Oracle\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":94,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/participez-a-un-record-du-monde-telechargez-firefox-3-le-1706\/","url_meta":{"origin":92,"position":3},"title":"Participez \u00e0 un record du monde &#8211; t\u00e9l\u00e9chargez firefox 3 le 17\/06","author":"admin","date":"Saturday June 14th, 2008","format":false,"excerpt":"Bon, tout est dans le titre de l'article :). Pour la sortie de Firefox 3, Mozilla organise un 'Download Day' o\u00f9 tout le monde est invit\u00e9 \u00e0 t\u00e9l\u00e9charger la nouvelle version le m\u00eame jour, Mardi 17 Juin. Les info sont ici: http:\/\/www.spreadfirefox.com\/fr\/worldrecord\/ inscrivez-vous pour participer (ou venez simplement le t\u00e9l\u00e9charger\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":377,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/session-chti-jug-sur-les-technologies-google\/","url_meta":{"origin":92,"position":4},"title":"Ch&#8217;ti Jug: les technologies Google","author":"admin","date":"Wednesday November 11th, 2009","format":false,"excerpt":"Hello, Lundi j'ai \u00e9t\u00e9 \u00e0 la session du Ch'ti Jug sur les technologies Google qui s'est pass\u00e9 \u00e0 l'ISEN et \u00e9tait sponsoris\u00e9e par SII. C'\u00e9tait la premi\u00e8re fois que j'assistais \u00e0 un \u00e9v\u00e8nement organis\u00e9 par le Ch'ti Jug et comme c'\u00e9tait int\u00e9ressant, j'aimerais partager avec vous l\u00e0 dessus. Ch'ti Jug?\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"Google Wave","src":"https:\/\/i0.wp.com\/loicmathieu.free.fr\/wordpress\/wp-content\/uploads\/google-wave.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/loicmathieu.free.fr\/wordpress\/wp-content\/uploads\/google-wave.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/loicmathieu.free.fr\/wordpress\/wp-content\/uploads\/google-wave.jpg?resize=525%2C300 1.5x"},"classes":[]},{"id":69,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/rdf-et-la-forme-n3\/","url_meta":{"origin":92,"position":5},"title":"RDF et la forme N3","author":"admin","date":"Monday April 21st, 2008","format":false,"excerpt":"Bonjour, au menu ajourd'hui: RDF et la forme N3, avec quelques exemples en JAVA avec l'aide du framework Jena. D\u00e9finition Bon, je pense qu'une petite d\u00e9finition de ces termes barbare s'impose: RDF: Resource Description Framework. Difficile d'expliquer en quelque mots ce que veut dire RDF! C'est une repr\u00e9sentation de donn\u00e9es\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/comments?post=92"}],"version-history":[{"count":0,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts\/92\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=92"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=92"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}