Cet article fait partie de ma traduction en français de The RESTful CookBook publié par Joshua Thijssen.

Le livre de cuisine RESTful

Comment faire des choses RESTful

Qu’est que le modèle de maturité de Richardson ?

Le modèle de maturité de Richardson est un moyen d’évaluer votre API par rapport aux contraintes de REST. Plus votre API respecte ces contraintes, plus haut est son score. Le modèle de maturité de Richardson compte 4 niveaux (0-3), où le niveau 3 représente une vraie API RESTful.

Niveau 0 : Basiquement XML

Le niveau 0 utilise son protocole d’implémentation (généralement HTTP, mais ce n’est pas une obligation) comme protocole de transport. Dans les faits, il tunnelise les requêtes et les réponses au travers de son protocole sans utiliser ce protocole pour indiquer l’état de l’application. Il utilisera seulement un point d’entrée (URI) et un type de méthode (en HTTP, c’est généralement la méthode POST). Des exemples sont SOAP et XML-RPC.

Niveau 1 : Ressources

Lorsque votre API permet de distinguer différentes ressources, elle peut être de niveau 1. Ce niveau utilise plusieurs URIs, où chaque URI est le point d’entrée vers une ressource spécifique. Au lieu de passer par http://example.org/articles, vous pouvez faire la distinction entre http://example.org/article/1 et http://example.org/article/2. Pourtant, ce niveau n’utilise qu’une seule méthode comme [POST].

Niveau 2 : Verbes HTTP

Pour être honnête, je n’aime pas ce niveau. Ceci parce que ce niveau suggère que pour être vraiment RESTful, votre API DOIT utiliser des verbes HTTP.
Hors ce n’est pas le cas. REST est complètement agnostique vis-à-vis d’un protocole, donc si vous souhaitez utiliser un protocole différent, votre API n’en restera pas moins RESTful.

Ce niveau précise que votre API devra utiliser les propriétés du protocole afin de pouvoir évoluer et résister aux pannes. N’utilisez pas une seule méthode [POST] pour tout, mais utilisez [GET] pour récupérer des ressources, et [DELETE] pour supprimer des ressources. De plus, utilisez les codes de réponse du protocole utilisé par votre application. Par exemple, n’utilisez pas le code [200] (OK) lorsque quelque chose se passe mal. En procédant ainsi avec le protocole HTTP, ou tout autre protocole que vous avez envie d’utiliser, vous aurez atteint le niveau 2.

Niveau 3 : Contrôles Hypermédia

Le niveau 3, qui est le plus haut niveau, utilise HATEOAS pour permettre aux clients de découvrir les possibilités de votre API. Vous pourrez trouver des informations sur HATEOAS ci-dessous.

Voir aussi