21
janvier
2008
Un Blog sur le web RESTful
janvier
2008
Un article de nicorama
5 Commentaires
Les RESTful Web Services sont un des moyens d’accès à des données par Internet. Supposons que vous demandiez à un serveur l’ensemble des lycées français présents aux USA : il existe une infinité de façons pour votre navigateur web de faire cette demande, et, pour le serveur, une infinité de façons de vous répondre.
Afin de se repérer parmi ces solutions, les programmeurs ont développées plusieurs méthodes plus ou moins standardisées, et notamment des méthodes appelées RPC, SOAP ou REST. On appellera un Service Web RESTful si il englobe la grande majorité des bons conseils de Roy T. Fielding, l’inventeur de REST.
Quelle est, au premier abord, la distinction de REST ?
Afin de se repérer parmi ces solutions, les programmeurs ont développées plusieurs méthodes plus ou moins standardisées, et notamment des méthodes appelées RPC, SOAP ou REST. On appellera un Service Web RESTful si il englobe la grande majorité des bons conseils de Roy T. Fielding, l’inventeur de REST.
Quelle est, au premier abord, la distinction de REST ?
Lorsque vous faites une requete RPC, SOAP ou REST à un serveur, vous incluez bien sûr par cette requete ce que vous demandez au serveur. En utilisant REST, cette demande est facilement décryptable par un être humain.
Par exemple DELETE edupassion.com/webservice/professeur.jsp?id=12
effacera le professeur n°12 inscrit à Edupassion.
Pourquoi REST ?
Les avis entre l’utilisation de REST et les méthodes SOAP et RPC sont partagées. Je ne ferais pas un xe débat, mais apparemment REST a gagné la guerre. A mon avis, le principal avantage de REST est de garder un code compréhensible et que l’on peut écrire humainement à la main, alors que SOAP requiererait l’assistance d’un EDI et fournirait par là-même ce que l’on appelle du XML Nightmare. Mais comme toute solution, REST et SOAP ont leurs avantages et inconvénients. Le but de ce blog n’est donc pas de départager, mais de savoir comment utiliser REST au mieux, selon les situations. |
L’environnement du Blog
Je donnerai beaucoup d’exemples liés au site web Edupassion.com et son framework Robusta que je développe pour mon entreprise Robusta Web. Ce code sera principalement en Java, mais aussi en XML, XSLT, Javascript, JSP, etc. Je publierai aussi de temps en temps l’astuce du jour, dans n’importe quel langage.
Mon pseudo-framework Robusta n’offrira à priori rien de standard, et moins de support que Restlet. Mais je trouve Restlet un brin lourdingue dans sa présentation ce qui est un peu dissuasif (mais Spring l’est aussi !). J’ai essayé un peu Restlet en pratique, mais pas assez pour m’en faire une vrai idée. Ce framework a l’air très cohérent, mais pas assez direct. A voir plus en profondeur.
J’essayerai avec Robusta de faire plus rapide dans la première execution. A chacun après de suivre son chemin.
L’API en cours de standardisation est JAX-RS (JSR-311). Jersey n’est que l’une des implémentations (celle de référence proposée par Sun). D’autres implémentations sont également en cours d’élaboration, dont une pour le projet Restlet.
Restlet est le projet qui a proposé le premier (en 2005) un framework dédié à REST, en Java. C’est une alternative stable aux Servlets avec une API uniforme, basée sur des classes, avec une capacité de coder des applis clientes et serveurs.
http://www.restlet.org
Jerome Louvel
http://blog.noelios.com
ok, merci pour la précision
Oui, c’est plus sexy et mieux pour le référencement, mais pas obligatoire. En fait, en installant directement Tomcat par exemple, on arrive dans un environnement avec des paramètres séparés avec ? et &.
Un des but du blog est justement de montrer que l’on peut utiliser REST de façon très bénéfique sans être ultra pointilleux. Du quiteREST plutôt que RESTful :). De même on peut faire de l’XP programming sans prendre tout en compte.
je croyais qu’un url REST devait avoir l’air de
DELETE edupassion.com/webservice/professeur/12
plutot que DELETE edupassion.com/webservice/professeur.jsp?id=12
je me trompe non ? (j’ai encore des notions assez vague de Rest), même si je suis de tres pret l’arrivée dans java de l’api jersey (https://jersey.dev.java.net/)