Critique du livre RESTful Web Services

Tags associés : , , , , posté le 30 august 2007


Logo associé au billet intitulé Critique du livre RESTful Web Services

Il y a désormais deux livres qui ont vraiment influé sur ma façon de concevoir une application. Le premier est Getting Real dont je n'ai jamais fait la critique mais qui est vraiment à lire et à relire (et à offrir à vos collègues de travail s'ils ont encore suffisamment de curiosité pour évoluer). Le second est RESTful Web Services dont j'ai déjà parlé dans mon billet sur l'architecture orientée ressource et que j'ai maintenant terminé.

Contrairement à mes autres critiques de livres, celle-ci va être très courte. C'est dans le cas présent un bon signe, ce livre est tout simplement LA référence si vous voulez comprendre et implémenter REST. Et la bonne nouvelle c'est qu'il sort bientôt en français (merci Sebmox) donc vous pourrez vraiment tout comprendre, veinards ;-).

Bon quelques critiques négatives pour faire sérieux quand même :

  • Pour un livre dont le mantra est « Web Services for the Real World », il est dommage d'avoir recours à HTML5 dans les exemples pour palier aux insuffisances des navigateurs actuels (pour les PUT et DELETE) qui n'est pas prêt d'être utilisable... J'aurais préféré une bonne pratique fixée une bonne fois pour toute, heureusement que les exemples de la fin compensent cette faiblesse.
  • Il y a parfois des redites (ou alors je l'ai lu trop vite !) mais elles sont peut-être utiles pour quelqu'un qui découvre véritablement REST. La partie pour convaincre est néanmoins très intéressante.

Voila, ce sont les seuls bémols que j'ai pu trouver à cet ouvrage qui est la référence à avoir dans sa bibliothèque si vous souhaitez développer des applications web au cours des 5 prochaines années. Sympa comme investissement non ? :-)

La cerise sur le gâteau, c'est si vous êtes développeur Rails ou Django car des exemples concrets vous permettent d'utiliser l'architecture orientée ressource avec votre framework de prédilection.

Pour terminer et en guise de pense-bête, voici la liste des étapes à retenir pour passer des besoins à leur implémentation :

  • Évaluer les données
  • Découper les données en ressources

Pour chaque type de ressource :

  • Nommer la ressource avec une URI
  • Déterminer les verbes utilisables de l'interface uniforme
  • Définir les représentations acceptées de la part du client
  • Définir les représentation servies au client
  • Intégrer cette ressource au ressources existantes, en utilisant les liens et les formulaires
  • Traiter le cheminement usuel : qu'est ce qui est supposé se produire ?
  • Traiter les erreurs : que faire lorsque ça ne va pas ?

Ces étapes ont intégré mes étapes de conception d'une application web et pour l'instant ça marche plutôt bien. Selon l'application, il faut bien sûr ajouter la notion de permissions utilisateur, je l'introduis généralement au moment de la détermination des verbes de l'interface uniforme.

Finalement pour un billet qui devait faire 3 lignes, je me suis laissé emporté par mon engouement et je finirais donc très sobrement : bonne lecture !

Vous pouvez consulter l'ensemble de mes critiques de livres.


Billets contextuels



★ RDF, l'ADN de notre identité numérique ?

Logo associé au billet intitulé RDF, l'ADN de notre identité numérique ?

Il était 6 heures du matin, dans un bateau me menant en Corse (après un voyage épique, ne prenez pas la SNCM !) et j'étais en train de lire la première boucle d'Hominescence décrite par Michel Serres, lorsque j ...

★ Découvrons OAuth avec mixin (et django-oauth)

Logo associé au billet intitulé Découvrons OAuth avec mixin (et django-oauth)

Après le billet de Sunny, on a décidé avec mixin d'utiliser OAuth pour autoriser l'accès aux données privées de l'API. Rien n'avait encore été fait avec Django alors c'était l'occasion de faire une application ...

★ Architecture web moderne et agile

Logo associé au billet intitulé Architecture web moderne et agile

Pour rebondir sur les propos de Christian qui essaye de combiner REST et RDF, je voudrais discuter de l'architecture « idéale » à laquelle je suis arrivé. C'est une problématique à laquelle je suis confronté aussi lors de ma réflexion ...




Commentaires

Cela semble très intéressant comme livre ! Les deux auteurs (Leonard Richardson et Sam Ruby) ne sont pas n'importe qui non plus ;)

1 | Rémi Prévost, le 30 August 2007 à 14h

C'est un tres bon livre pour le cote Web 2.0. Mais il ne fait pas justice du tout au aspects Web 3.0 qui poussent l'architecture oriente resource beaucoup plus loin. C'est domage parce que les technologies Web 3.0 - le Web Semantique essentiellement - peuvent beaucoup simplifier la creation de representation pour le client. Je develope cette critique en anglais ici:
blogs.sun.com/bblfish/ent...

Pour une illustration positive voire mon autre article
blogs.sun.com/bblfish/ent...

La premiere partie de l'article est tres simple a implementer. Dans la seconde partie, qui est plus un debut de plan de recherche, je montre jusque ou cela peut mener.

2 | Henry Story, le 30 August 2007 à 15h

@Rémi Prévost : oui je parle rarement des auteurs mais en effet il s'agit de pointures dans le domaine :-).

@Henry Story : je suis bien d'accord sur le fait qu'il manque RDF dans ce livre ! Peut-être est-ce trop complet pour tenir dans un tel ouvrage et qu'ils ont préféré s'abstenir et/ou nous écrire un second livre complétant celui-ci ? Ça serait une excellente nouvelle...

Merci pour l'illustration du second lien, vraiment intéressant.

3 | David, biologeek, le 30 August 2007 à 19h

Merci pour cette critique, je l'attends impatiemment en français :)

4 | Neovov, le 1 September 2007 à 11h

Medium ? je sais pas ton article tombe pil poil.

En passant Django REST interface, resultat du GSoC 2007 (lien avec le commentaire). Je ne l'ai pas encore utiliser mais cela va rendre plus accessible la techno REST.

5 | Amirouche B., le 2 September 2007 à 04h

@Amirouche B. : content d'avoir pu rendre service, concernant le GSoC je suis en plein dedans et c'est très bon !

6 | David, biologeek, le 2 September 2007 à 10h

Ajouter un commentaire

© 2004-2008 David Larlet - Licence (presque) libre - Site enfin propulsé par Django et hébergé par Typhon.