Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 5 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488
  1. <div class="comment" typeof="schema:UserComments">
  2. <p class="comment-meta">
  3. <span class="comment-author" property="schema:creator">Country</span> le <span class="comment-date" property="schema:commentTime">13/04/2007</span> :
  4. </p>
  5. <div class="comment-content" property="schema:commentText">
  6. <p>Merci beaucoup pour cet article (et les liens associés).<br />
  7. <br />
  8. Ça m'a permis de découvrir cette architecture (j'en avais souvent entendu parlé mais je n'avais jamais approfondi la question). Vivement la suite de l'article :)</p>
  9. </div>
  10. </div>
  11. <div class="comment" typeof="schema:UserComments">
  12. <p class="comment-meta">
  13. <span class="comment-author" property="schema:creator">Thesa</span> le <span class="comment-date" property="schema:commentTime">13/04/2007</span> :
  14. </p>
  15. <div class="comment-content" property="schema:commentText">
  16. <p>Wahou !<br />
  17. <br />
  18. Super article, merci beaucoup pour la traduction !</p>
  19. </div>
  20. </div>
  21. <div class="comment" typeof="schema:UserComments">
  22. <p class="comment-meta">
  23. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">13/04/2007</span> :
  24. </p>
  25. <div class="comment-content" property="schema:commentText">
  26. <p>@Country et Thesa : merci.<br />
  27. <br />
  28. @Geoffrey : j'ai malencontreusement effacé ton commentaire en supprimant les spams, je suis vraiment vraiment désolé :/<br />
  29. <br />
  30. C'est dommage il était intéressant, de mémoire tu mettais en avant le fait qu'il serait mieux que les navigateurs implémentent ces méthodes pour ne pas avoir à faire des hacks de l'utilisation de POST et je suis bien d'accord avec toi !<br />
  31. <br />
  32. Le problème c'est l'inertie des navigateurs, il n'y a qu'à voir l'éternel débat entre xhtml2 et html5... du coup les petites bidouilles prennent parfois le dessus car les développeurs web sont plus réactifs ;-).</p>
  33. </div>
  34. </div>
  35. <div class="comment" typeof="schema:UserComments">
  36. <p class="comment-meta">
  37. <span class="comment-author" property="schema:creator">biou</span> le <span class="comment-date" property="schema:commentTime">14/04/2007</span> :
  38. </p>
  39. <div class="comment-content" property="schema:commentText">
  40. <p>si je peux me permettre, dans le paragraphe &quot;quatre méthodes&quot; je crois qu'il y a une inversion dans les descriptions de PUT et de POST.<br />
  41. <a href="http://tools.ietf.org/html/rfc2616#section-9.5" title="http://tools.ietf.org/html/rfc2616#section-9.5" rel="nofollow">tools.ietf.org/html/rfc26...</a></p>
  42. </div>
  43. </div>
  44. <div class="comment" typeof="schema:UserComments">
  45. <p class="comment-meta">
  46. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">14/04/2007</span> :
  47. </p>
  48. <div class="comment-content" property="schema:commentText">
  49. <p>@biou : je ne crois pas (cf. <a href="http://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol#M.C3.A9thodes" title="http://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol#M.C3.A9thodes" rel="nofollow">fr.wikipedia.org/wiki/Hyp...</a> )</p>
  50. </div>
  51. </div>
  52. <div class="comment" typeof="schema:UserComments">
  53. <p class="comment-meta">
  54. <span class="comment-author" property="schema:creator">gdo</span> le <span class="comment-date" property="schema:commentTime">15/04/2007</span> :
  55. </p>
  56. <div class="comment-content" property="schema:commentText">
  57. <p>Super article bravo<br />
  58. Maintenant il ne me reste (sans jeu de mot) plus qu'a reprendre mes programme ROR<br />
  59. <br />
  60. cordialement</p>
  61. </div>
  62. </div>
  63. <div class="comment" typeof="schema:UserComments">
  64. <p class="comment-meta">
  65. <span class="comment-author" property="schema:creator">karl</span> le <span class="comment-date" property="schema:commentTime">23/04/2007</span> :
  66. </p>
  67. <div class="comment-content" property="schema:commentText">
  68. <p>URIs, Addressability, and the use of HTTP GET and POST<br />
  69. <a href="http://www.w3.org/2001/tag/doc/whenToUseGet.html" title="http://www.w3.org/2001/tag/doc/whenToUseGet.html" rel="nofollow">www.w3.org/2001/tag/doc/w...</a><br />
  70. <br />
  71. Notamment la checklist<br />
  72. 1.3 Quick Checklist for Choosing HTTP GET or POST</p>
  73. </div>
  74. </div>
  75. <div class="comment" typeof="schema:UserComments">
  76. <p class="comment-meta">
  77. <span class="comment-author" property="schema:creator">karl</span> le <span class="comment-date" property="schema:commentTime">23/04/2007</span> :
  78. </p>
  79. <div class="comment-content" property="schema:commentText">
  80. <p>Un autre article tres interessant sur le sujet<br />
  81. <br />
  82. <a href="http://bitworking.org/news/125/REST-and-WS" title="http://bitworking.org/news/125/REST-and-WS" rel="nofollow">bitworking.org/news/125/R...</a></p>
  83. </div>
  84. </div>
  85. <div class="comment" typeof="schema:UserComments">
  86. <p class="comment-meta">
  87. <span class="comment-author" property="schema:creator">Jérémie Grodziski</span> le <span class="comment-date" property="schema:commentTime">28/04/2007</span> :
  88. </p>
  89. <div class="comment-content" property="schema:commentText">
  90. <p>Bonjour David,<br />
  91. <br />
  92. Bravo pour cette traduction.<br />
  93. Je me permet de citer un lien vers un de mes posts il y a 6 mois sur ce sujet avec mon point de vue d'architecte du logiciel concernant la scalabilité / échelonnabilité de ce type d'architecture.<br />
  94. En anglais : <a href="http://www.grodziski.com/blog/jcontent/en/Architecture/2006/11/01/REST-a-scalable-architecture.html" title="http://www.grodziski.com/blog/jcontent/en/Architecture/2006/11/01/REST-a-scalable-architecture.html" rel="nofollow">www.grodziski.com/blog/jc...</a><br />
  95. Et en français :-) : <a href="http://www.grodziski.com/blog/jcontent/fr/Architecture/2006/11/01/REST-une-architecture-echelonnable.html" title="http://www.grodziski.com/blog/jcontent/fr/Architecture/2006/11/01/REST-une-architecture-echelonnable.html" rel="nofollow">www.grodziski.com/blog/jc...</a><br />
  96. <br />
  97. Jérémie.</p>
  98. </div>
  99. </div>
  100. <div class="comment" typeof="schema:UserComments">
  101. <p class="comment-meta">
  102. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">28/04/2007</span> :
  103. </p>
  104. <div class="comment-content" property="schema:commentText">
  105. <p>Merci pour ces liens Jérémie qui complètent parfaitement ce billet.</p>
  106. </div>
  107. </div>
  108. <div class="comment" typeof="schema:UserComments">
  109. <p class="comment-meta">
  110. <span class="comment-author" property="schema:creator">ThinkDRY Corp</span> le <span class="comment-date" property="schema:commentTime">14/05/2007</span> :
  111. </p>
  112. <div class="comment-content" property="schema:commentText">
  113. <p>super Ti Geek, marrant de retomber sur ton site en faisant de la veille sur REST...tenté par une virée en Inde pour implementer du REST on Rails? <br />
  114. </p>
  115. </div>
  116. </div>
  117. <div class="comment" typeof="schema:UserComments">
  118. <p class="comment-meta">
  119. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">15/05/2007</span> :
  120. </p>
  121. <div class="comment-content" property="schema:commentText">
  122. <p>Mmmh pas encore prêt à faire le grand saut mais qui sait, peut-être plus tard ? :-)</p>
  123. </div>
  124. </div>
  125. <div class="comment" typeof="schema:UserComments">
  126. <p class="comment-meta">
  127. <span class="comment-author" property="schema:creator">Bader</span> le <span class="comment-date" property="schema:commentTime">25/06/2007</span> :
  128. </p>
  129. <div class="comment-content" property="schema:commentText">
  130. <p>Tu peux peut-être rajouter ma courte présentation vidéo <a href="http://chamia.info/bader/archives/137" title="http://chamia.info/bader/archives/137" rel="nofollow">chamia.info/bader/archive...</a><br />
  131. ainsi que le PDF qui va avec :<br />
  132. <a href="http://journees.afpy.org/presentations/preston-ladjemi.pdf" title="http://journees.afpy.org/presentations/preston-ladjemi.pdf" rel="nofollow">journees.afpy.org/present...</a></p>
  133. </div>
  134. </div>
  135. <div class="comment" typeof="schema:UserComments">
  136. <p class="comment-meta">
  137. <span class="comment-author" property="schema:creator">Graouille</span> le <span class="comment-date" property="schema:commentTime">23/08/2007</span> :
  138. </p>
  139. <div class="comment-content" property="schema:commentText">
  140. <p>Très bonne approche pour comprendre REST. C'est très clair. Merci.</p>
  141. </div>
  142. </div>
  143. <div class="comment" typeof="schema:UserComments">
  144. <p class="comment-meta">
  145. <span class="comment-author" property="schema:creator">Fred</span> le <span class="comment-date" property="schema:commentTime">26/12/2007</span> :
  146. </p>
  147. <div class="comment-content" property="schema:commentText">
  148. <p>Bonjour<br />
  149. <br />
  150. J'ai traduit le chapitre 5 de la thèse de Roy. Fielding. Cela peut compléter la liste des ressources.<br />
  151. <a href="http://opikanoba.org/tr/fielding/rest/" title="http://opikanoba.org/tr/fielding/rest/" rel="nofollow">opikanoba.org/tr/fielding...</a><br />
  152. <br />
  153. Fred</p>
  154. </div>
  155. </div>
  156. <div class="comment" typeof="schema:UserComments">
  157. <p class="comment-meta">
  158. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">28/12/2007</span> :
  159. </p>
  160. <div class="comment-content" property="schema:commentText">
  161. <p>Oh merci Fred ! J'ai ajouté le lien en ressource.</p>
  162. </div>
  163. </div>
  164. <div class="comment" typeof="schema:UserComments">
  165. <p class="comment-meta">
  166. <span class="comment-author" property="schema:creator">Bernard Notarianni</span> le <span class="comment-date" property="schema:commentTime">06/01/2008</span> :
  167. </p>
  168. <div class="comment-content" property="schema:commentText">
  169. <p>Excellent article, autant dans la forme que le fond. <br />
  170. <br />
  171. Merci :-)</p>
  172. </div>
  173. </div>
  174. <div class="comment" typeof="schema:UserComments">
  175. <p class="comment-meta">
  176. <span class="comment-author" property="schema:creator">Nicolas Martignole</span> le <span class="comment-date" property="schema:commentTime">01/02/2008</span> :
  177. </p>
  178. <div class="comment-content" property="schema:commentText">
  179. <p>Article très clair et intéressant.<br />
  180. Merci pour ta traduction<br />
  181. <br />
  182. Nicolas</p>
  183. </div>
  184. </div>
  185. <div class="comment" typeof="schema:UserComments">
  186. <p class="comment-meta">
  187. <span class="comment-author" property="schema:creator">Azema</span> le <span class="comment-date" property="schema:commentTime">25/03/2008</span> :
  188. </p>
  189. <div class="comment-content" property="schema:commentText">
  190. <p>Merci beaucoup pour ce billet,<br />
  191. <br />
  192. Cela m'a permit de mieux apercevoir Rest, même si c'est encore un peu flou dans ma tête.<br />
  193. <br />
  194. Je vais tenter de travailler un peu plus dessus, pour m'éclaircir les neurones.<br />
  195. <br />
  196. Merci encore et bon courage pour la suite avec Django.<br />
  197. <br />
  198. Azema.</p>
  199. </div>
  200. </div>
  201. <div class="comment" typeof="schema:UserComments">
  202. <p class="comment-meta">
  203. <span class="comment-author" property="schema:creator">bea</span> le <span class="comment-date" property="schema:commentTime">06/04/2008</span> :
  204. </p>
  205. <div class="comment-content" property="schema:commentText">
  206. <p>Je vais commencer à écrire une API REST en java, cet article m'a beaucoup aidé pour comprendre comment structurer mon projet.<br />
  207. <br />
  208. J'ai une question &quot;pratique&quot;, comment faire côté serveur pour avoir autant d'URL? <br />
  209. Je pensais utiliser des servlets mais comment faire avec une URL du type /XXX/&lt;user_id&gt;/getYYY ?<br />
  210. Il faut analyser l'URL?<br />
  211. <br />
  212. Merci pour vos réponses.</p>
  213. </div>
  214. </div>
  215. <div class="comment" typeof="schema:UserComments">
  216. <p class="comment-meta">
  217. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">06/04/2008</span> :
  218. </p>
  219. <div class="comment-content" property="schema:commentText">
  220. <p>@bea : oui c'est exactement ça, en fonction des arguments dans l'url, il faut servir une réponse appropriée. Pour java, je sais qu'il existe pas mal de solutions qu'il serait intéressant d'analyser avant de se lancer dans l'écriture d'une nouvelle solution à mon avis. Bon courage :-)</p>
  221. </div>
  222. </div>
  223. <div class="comment" typeof="schema:UserComments">
  224. <p class="comment-meta">
  225. <span class="comment-author" property="schema:creator">bea (RE)</span> le <span class="comment-date" property="schema:commentTime">06/04/2008</span> :
  226. </p>
  227. <div class="comment-content" property="schema:commentText">
  228. <p>Tu parles d'arguments dans l'url.<br />
  229. Je voudrais savoir pourquoi avoir des URLs du type /XXX/&lt;user_id&gt;/getYYY plutôt que d'avoir une URL et un paramètre user_id.<br />
  230. <br />
  231. C'est plus simple de récuépérer les paramètres envoyés en get ou post plutôt que d'analyser l'URL.<br />
  232. <br />
  233. J'ai lu que c'était mieux de ne pas passer par des paramètres, pourquoi??<br />
  234. <br />
  235. merci<br />
  236. </p>
  237. </div>
  238. </div>
  239. <div class="comment" typeof="schema:UserComments">
  240. <p class="comment-meta">
  241. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">07/04/2008</span> :
  242. </p>
  243. <div class="comment-content" property="schema:commentText">
  244. <p>J'en ai pas mal parlé là : <a href="https://larlet.fr/david/biologeek/archives/20070629-architecture-orientee-ressource-pour-faire-des-services-web-restful/" title="https://larlet.fr/david/biologeek/archives/20070629-architecture-orientee-ressource-pour-faire-des-services-web-restful/" rel="nofollow">www.biologeek.com/journal...</a><br />
  245. <br />
  246. Le but c'est d'avoir une URL unique pour la ressource : /foo/id/. Normalement ton backend doit pouvoir traiter une url et en extraire les arguments (en tout cas les bons frameworks le font).<br />
  247. <br />
  248. Je n'avais pas vu le getYYY ton exemple, tu comptes mettre quoi dans YYY ? Normalement tu ne dois pas mettre de verbes dans tes urls, les actions doivent être dictées par les verbes HTTP (GET, POST, PUT et DELETE).<br />
  249. <br />
  250. Pour les paramètres, ils ont été déconseillés à la base car ils posaient problème dans le cas du référencement (tout ce qui est après le ? n'était pas considéré par Google). Aujourd'hui, ils restent utile dans le cas de filtres mais ils sont moins employés. Il faut considérer les urls comme les ids de la gigantesque base de données qu'est le web.</p>
  251. </div>
  252. </div>
  253. <div class="comment" typeof="schema:UserComments">
  254. <p class="comment-meta">
  255. <span class="comment-author" property="schema:creator">Alex</span> le <span class="comment-date" property="schema:commentTime">08/04/2008</span> :
  256. </p>
  257. <div class="comment-content" property="schema:commentText">
  258. <p>Bonjour,<br />
  259. <br />
  260. Pour avoir mis en place une architecture REST au sein d'une grande banque, voici quelques inconvénients et difficultés rencontrés :<br />
  261. <br />
  262. - Proxy http : les proxys applicatifs sont souvent limitatifs quant aux verbes http autorisés. DELETE et PUT notamment sont souvent bloqués et il faut passer outre en sacrifiant l'esprit REST (ie utiliser POST et GET de façon détournés)<br />
  263. - Librairies clientes : autant les outils du coté serveur sont matures et nombreux (en java : Restlet, Jersey et la JSR 311) autant les librairies du côté client (web notamment) ne sont pas toujours compatibles (exemple client flex : <a href="http://www.fngtps.com/2007/06/flex-can-t-do-rest" title="http://www.fngtps.com/2007/06/flex-can-t-do-rest" rel="nofollow">www.fngtps.com/2007/06/fl...</a>)<br />
  264. - Difficultés de mapper des services avec des ressources : l'architecture REST est parfaite pour une serveur de ressources (ie. getUser, postUser etc.) mais pour modéliser une application rendant des services métiers complexes (calculs, règle de gestion etc.) cela devient un vrai casse tête pour créer et mapper les ressources de façon intelligente sans sacrifier la modélisation applicative &quot;standard&quot; du côté serveur<br />
  265. <br />
  266. Alex.</p>
  267. </div>
  268. </div>
  269. <div class="comment" typeof="schema:UserComments">
  270. <p class="comment-meta">
  271. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">08/04/2008</span> :
  272. </p>
  273. <div class="comment-content" property="schema:commentText">
  274. <p>Merci pour ce retour très intéressant Alex !<br />
  275. <br />
  276. Pour répondre à la problématique de mapping des ressources, je suis aussi confronté à ce problème et c'est pas toujours évident...<br />
  277. <br />
  278. Je trouve l'article de Joe Gregorio très intéressant à ce sujet :<br />
  279. <a href="http://bitworking.org/news/201/RESTify-DayTrader" title="http://bitworking.org/news/201/RESTify-DayTrader" rel="nofollow">bitworking.org/news/201/R...</a><br />
  280. <br />
  281. Ça nécessite une certaine gymnastique du cerveau au début mais qui peut s'avérer utile, à force de retourner un peu l'application dans tous les sens pour identifier les ressources, ça ouvre parfois de nouvelles perspectives intéressantes.</p>
  282. </div>
  283. </div>
  284. <div class="comment" typeof="schema:UserComments">
  285. <p class="comment-meta">
  286. <span class="comment-author" property="schema:creator">jc</span> le <span class="comment-date" property="schema:commentTime">09/04/2008</span> :
  287. </p>
  288. <div class="comment-content" property="schema:commentText">
  289. <p>le genre d'article a lire un soir ou la copine n'est pas dans le coin (pour éviter les conversation ressemblant à des monologue &quot;Hey j'ai encore lu un truc trop bien...tu m'écoute?&quot; mais plutot se dire intérieurement avec une certaine satisfaction &quot;Woa c trop cool encore un article qui vas m'en apprendre plus qu'a l'ecole&quot;)<br />
  290. <br />
  291. bref. nouveaux sur django, je m'en vais direct avaler l'article sur django/REST.<br />
  292. <br />
  293. Encore un petit mot pour dire merci sur la qualité de ce blog et sa volonté didactique éfficace (premier commentaire oblige ;) )</p>
  294. </div>
  295. </div>
  296. <div class="comment" typeof="schema:UserComments">
  297. <p class="comment-meta">
  298. <span class="comment-author" property="schema:creator">mamo</span> le <span class="comment-date" property="schema:commentTime">18/04/2008</span> :
  299. </p>
  300. <div class="comment-content" property="schema:commentText">
  301. <p>Merci, Super article sympa sur REST... </p>
  302. </div>
  303. </div>
  304. <div class="comment" typeof="schema:UserComments">
  305. <p class="comment-meta">
  306. <span class="comment-author" property="schema:creator">Mathieu</span> le <span class="comment-date" property="schema:commentTime">19/12/2008</span> :
  307. </p>
  308. <div class="comment-content" property="schema:commentText">
  309. <p>Bonsoir,</p>
  310. <p>L&#39;article est très bien fait, mais je me sent un peu obligé de réagir sur un point. A propos de POST et PUT, si l&#39;on en croit ce document <a href="http://tools.ietf.org/html/rfc2616#page-54">http://tools.ietf.org/html/rfc2616#page-54</a> , ce serai plutot:</p>
  311. <p>PUT: créer ou modifier la ressource a tel uri, par exemple:<br />PUT /user/mathieu<br />avec dans le body: <br />&lt;user&gt;<br /> &lt;prenom&gt;mathieu&lt;/prenom&gt;<br /> &lt;nom&gt;.....&lt;/nom&gt;<br /> ....<br />&lt;/user&gt;</p>
  312. <p>alors que POST ne signifie pas nécéssairement qu&#39;une ressource sera créer. dans l&#39;application sur laquelle je travaille, on essai d&#39;utiliser POST, seulement quand on ne peux pas utiliser PUT, en général, lorsque l&#39;on ne connais pas à l&#39;avance l&#39;uri qui permettra d&#39;identifier la ressource (par exemple si l&#39;identifiant est un id auto incrémenté de base de donnée)</p>
  313. <p>Cordialement, Mathieu.</p>
  314. </div>
  315. </div>
  316. <div class="comment" typeof="schema:UserComments">
  317. <p class="comment-meta">
  318. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">22/12/2008</span> :
  319. </p>
  320. <div class="comment-content" property="schema:commentText">
  321. <p>@Mathieu : je suis tout à fait d&#39;accord, et c&#39;est ce que je précise dans un billet suivant (qui lui n&#39;est pas une traduction) :<br /><a href="https://larlet.fr/david/biologeek/archives/20070629-architecture-orientee-ressource-pour-faire-des-services-web-restful/">https://larlet.fr/david/biologeek/archives/20070629-architecture-orientee-ressource-pour-faire-des-services-web-restful/</a></p>
  322. <p>Cela dit, il est assez rare de connaître à partir du client les contraintes appliquées sur le serveur, comme tu le précises.</p>
  323. </div>
  324. </div>
  325. <div class="comment" typeof="schema:UserComments">
  326. <p class="comment-meta">
  327. <span class="comment-author" property="schema:creator">Michel Baily</span> le <span class="comment-date" property="schema:commentTime">05/02/2009</span> :
  328. </p>
  329. <div class="comment-content" property="schema:commentText">
  330. <p>Bonjour,</p>
  331. <p>Merci pour cette explication claire.<br />Je suis également dans une situation &quot;J&#39;apprends Ruby + RoR + Le Web dévelopmment+ Ajax + ...&quot;<br />Donc beaucoup de questions se posent à moi.<br />Notamment par rapport aux listes de ressources comme dans l&#39;exemple<br />/aeroports pour la liste des aéroports<br />/aeroports/orly pour orly</p>
  332. <p>Comment implémente-t-on la notion de filtre ?<br />Imaginons que je souhaite une liste des aéroports de France. Mon Url serait<br />/aeroports/france<br />Comment mon code va-t-il pouvoir identifier que france est une (sous)liste alors que orly est une resource ?<br />( Je voudrais évidement éviter de devoir demander<br />/aeroports/france/orly )</p>
  333. <p>Désolé si la question peut paraitre triviale à certains ;-)</p>
  334. <p>Michel</p>
  335. <p></p>
  336. </div>
  337. </div>
  338. <div class="comment" typeof="schema:UserComments">
  339. <p class="comment-meta">
  340. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">06/02/2009</span> :
  341. </p>
  342. <div class="comment-content" property="schema:commentText">
  343. <p>Salut Michel,</p>
  344. <p>Je dirais que tout dépend si le filtre est assimilable à une collection lui-même.</p>
  345. <p>Par exemple, si on veut juste pouvoir filtrer les aéroports en France, on peut passer les arguments en GET :<br />/aeroports/?country=France<br />Cette page listera les ressources (dont un lien vers Orly) qui correspondent à des aéroports filtrés pour le pays France.</p>
  346. <p>Maintenant c&#39;est souvent au cas par cas, selon l&#39;importance de la sous-collection en général. Par exemple ici on pourrait avoir /aeroports/france/orly ou /aeroports/orly Quelle URL fait le plus de sens pour cette ressource ? Je serais tenté de dire /aeroports/orly car on a bien collection/ressource mais ça dépend vraiment du projet, parfois il est plus intéressant d&#39;avoir la notion de filtrage par lieu directement dans l&#39;URL. Il n&#39;y a pas de réponse dans l&#39;absolu :-)</p>
  347. </div>
  348. </div>
  349. <div class="comment" typeof="schema:UserComments">
  350. <p class="comment-meta">
  351. <span class="comment-author" property="schema:creator">Vincent Boniakos</span> le <span class="comment-date" property="schema:commentTime">24/02/2009</span> :
  352. </p>
  353. <div class="comment-content" property="schema:commentText">
  354. <p>Salut Michel,<br />J&#39;utilise le framework konstrukt en PHP pour créer mon architecture REST. Leur approche est intéressante car ils utilisent la notion de controller. Je te laisse regarder la définition du pattern MVC.<br />Le principe est le suivant :<br />1. Chaque URI possède son controller.<br />Lorsque tu tapes <a href="http://www.monsite.com/aeroports">www.monsite.com/aeroports</a> un controller nommé &quot;aeroport_list_controller&quot; va s&#39;occuper de ta requête : par exemple afficher la liste des aéroports. De même si tapes <a href="http://www.monsite.com/aeroports/orly">www.monsite.com/aeroports/orly</a> un controller que l&#39;on va appelé &quot;aeroport_show_controller&quot; s&#39;occupera de ta requête, et affichera la liste des avions à orly.</p>
  355. </div>
  356. </div>
  357. <div class="comment" typeof="schema:UserComments">
  358. <p class="comment-meta">
  359. <span class="comment-author" property="schema:creator">Vincent Boniakos</span> le <span class="comment-date" property="schema:commentTime">24/02/2009</span> :
  360. </p>
  361. <div class="comment-content" property="schema:commentText">
  362. <p>(Suite)<br />2.Chaque controller possède deux comportement.<br />Le premier est décrit en 1., le second est de rediriger vers le controller correspondant à ta requête.<br />Un exemple : je saisie l&#39;url <a href="http://www.monsite.com/aeroports/orly/vols/451">www.monsite.com/aeroports/orly/vols/451</a>. Le premier controller en jeu est &quot;aeroport_list_controller&quot;, qui me redirige vers &quot;aeroport_show_controller&quot;. &quot;aeroport_show_controller&quot; me redirige vers &quot;vols_list_controller&quot;.<br />&quot;vols_list_controller&quot; me redirige ensuite vers &quot;vols_show_controller&quot; qui affichera le vol 451 au départ d&#39;orly !<br />3.Chaque controller connait le contexte dans lequel il est appelé, par imbriquation. Ainsi lorsque je saisis aeroports/orly/vols/451, &quot;vols_show_controller&quot; sait que je souhaite afficher le vol 451 au départ d&#39;orly.<br />Enfin c&#39;est à toi d&#39;implémenter les méthodes GET, POST, PUT et DELETE dans chaque controller.</p>
  363. </div>
  364. </div>
  365. <div class="comment" typeof="schema:UserComments">
  366. <p class="comment-meta">
  367. <span class="comment-author" property="schema:creator">guigui</span> le <span class="comment-date" property="schema:commentTime">14/06/2009</span> :
  368. </p>
  369. <div class="comment-content" property="schema:commentText">
  370. <p>Bonjour, <br />cet article est très intéressant, il m&#39;a permis de mieux comprendre REST. <br />Pour un TP j&#39;ai pu le mettre pratique avec SYMFONY. Cependant, existe-t-il un moyen de tester, en envoyant des headers HTTP avec les différentes commandes (GET, POST, DELETE, ...) ?</p>
  371. </div>
  372. </div>
  373. <div class="comment" typeof="schema:UserComments">
  374. <p class="comment-meta">
  375. <span class="comment-author" property="schema:creator">LTC</span> le <span class="comment-date" property="schema:commentTime">21/08/2009</span> :
  376. </p>
  377. <div class="comment-content" property="schema:commentText">
  378. <p>Merci pour l&#39;article... Je dois développer sous une architecture REST et ça me semble moins flou.</p>
  379. </div>
  380. </div>
  381. <div class="comment" typeof="schema:UserComments">
  382. <p class="comment-meta">
  383. <span class="comment-author" property="schema:creator">Dominique Rabeuf</span> le <span class="comment-date" property="schema:commentTime">11/10/2009</span> :
  384. </p>
  385. <div class="comment-content" property="schema:commentText">
  386. <p>Et maintenant comment faire avec xmpp ? Il n&#39;y a pas les méthodes de http ? C&#39;est pas grave, parce que peut importe la manière de désigner, ce qui compte c&#39;est la ressource et ce qu&#39;on peut faire avec ! faire(ressource) ~ f(x) on prend x et on cherche les f qui vont avec, et voilà. Le Web est mort, vive Jabber</p>
  387. </div>
  388. </div>
  389. <div class="comment" typeof="schema:UserComments">
  390. <p class="comment-meta">
  391. <span class="comment-author" property="schema:creator">Ronald</span> le <span class="comment-date" property="schema:commentTime">19/11/2009</span> :
  392. </p>
  393. <div class="comment-content" property="schema:commentText">
  394. <p>Superbe article au total, Merci</p>
  395. </div>
  396. </div>
  397. <div class="comment" typeof="schema:UserComments">
  398. <p class="comment-meta">
  399. <span class="comment-author" property="schema:creator">Bilal</span> le <span class="comment-date" property="schema:commentTime">30/03/2010</span> :
  400. </p>
  401. <div class="comment-content" property="schema:commentText">
  402. <p>Merci pour cette introduction pratique à REST</p>
  403. </div>
  404. </div>
  405. <div class="comment" typeof="schema:UserComments">
  406. <p class="comment-meta">
  407. <span class="comment-author" property="schema:creator">mélanie</span> le <span class="comment-date" property="schema:commentTime">22/05/2010</span> :
  408. </p>
  409. <div class="comment-content" property="schema:commentText">
  410. <p>C&#39;est sympa l&#39;approche pour la compréhension de post et de rest.</p>
  411. <p>Comme quoi on peu apprendre en s&#39;amusant ;-)</p>
  412. </div>
  413. </div>
  414. <div class="comment" typeof="schema:UserComments">
  415. <p class="comment-meta">
  416. <span class="comment-author" property="schema:creator">Jérémy</span> le <span class="comment-date" property="schema:commentTime">08/09/2010</span> :
  417. </p>
  418. <div class="comment-content" property="schema:commentText">
  419. <p>Excellent, je m&#39;interressais justement à REST et je redécouvre internet ici. Merci beaucoup pour cette explication ds plus plaisante. ça donne envie de s&#39;y mettre.</p>
  420. </div>
  421. </div>
  422. <div class="comment" typeof="schema:UserComments">
  423. <p class="comment-meta">
  424. <span class="comment-author" property="schema:creator">Jeremy - Stratège Web</span> le <span class="comment-date" property="schema:commentTime">05/07/2011</span> :
  425. </p>
  426. <div class="comment-content" property="schema:commentText">
  427. <p>C&#39;est un peu dur à saisir mais je crois que ça fait lentement son chemin dans ma tête.</p>
  428. <p>Est-ce que tu penses qu&#39;une adoption unifiée du REST à travers le Web bénéficierait l&#39;arrivée du Web 3.0?</p>
  429. <p>Bien à toi,<br />Jérémy</p>
  430. </div>
  431. </div>
  432. <div class="comment" typeof="schema:UserComments">
  433. <p class="comment-meta">
  434. <span class="comment-author" property="schema:creator">Philippe</span> le <span class="comment-date" property="schema:commentTime">17/08/2011</span> :
  435. </p>
  436. <div class="comment-content" property="schema:commentText">
  437. <p>Merci pour ces infos, REST m&#39;interressait, mais je crois sincèrement que mon cerveau décroche ou que techniquement, j&#39;ai encore des progès à faire ...</p>
  438. </div>
  439. </div>
  440. <div class="comment" typeof="schema:UserComments">
  441. <p class="comment-meta">
  442. <span class="comment-author" property="schema:creator">Abuzz</span> le <span class="comment-date" property="schema:commentTime">05/10/2011</span> :
  443. </p>
  444. <div class="comment-content" property="schema:commentText">
  445. <p>Merci pour ces infos détaillées mais je trouyve çà trop compliqué .... ou alors c&#39;est moi qui ne suis plus :-(</p>
  446. </div>
  447. </div>
  448. <div class="comment" typeof="schema:UserComments">
  449. <p class="comment-meta">
  450. <span class="comment-author" property="schema:creator">Gerard</span> le <span class="comment-date" property="schema:commentTime">09/11/2011</span> :
  451. </p>
  452. <div class="comment-content" property="schema:commentText">
  453. <p>Article très intéressant, mais celle reste quand même complexe à comprendre pas si évident que ça.</p>
  454. </div>
  455. </div>
  456. <div class="comment" typeof="schema:UserComments">
  457. <p class="comment-meta">
  458. <span class="comment-author" property="schema:creator">kaouther</span> le <span class="comment-date" property="schema:commentTime">26/12/2011</span> :
  459. </p>
  460. <div class="comment-content" property="schema:commentText">
  461. <p>merci pour l&#39;article,<br />je suis entrain de chercher comment généraliser REST aux applications desktop (desktop disribué)en implémentant le modèle MVC <br />pouvez vous m&#39;aider?</p>
  462. </div>
  463. </div>
  464. <div class="comment" typeof="schema:UserComments">
  465. <p class="comment-meta">
  466. <span class="comment-author" property="schema:creator">Vincent François</span> le <span class="comment-date" property="schema:commentTime">09/01/2012</span> :
  467. </p>
  468. <div class="comment-content" property="schema:commentText">
  469. <p>Simple, efficace, merci !</p>
  470. </div>
  471. </div>