Le Guide API ReST | Marmicode
  • Le Guide API ReST par Marmicode
  • API ReST
    • L'Ecosystème Moderne
    • Le Besoin
    • Re.S.T. : REpresentational State Transfer
    • Les 5 règles et ½ de l’API ReST
    • Le Modèle de Maturité de Richardson
    • H.A.T.E.O.A.S. & Resource Linking
    • Avis Subjectif sur H.A.T.E.O.A.S. et le Semantic Web
    • ReST over HTTP
    • HTTP & CRUD
    • ReSTful donc Stateless
    • Pragmatisme, Idéologie et ReSTafarians
  • Conventions & Bonnes Pratiques
    • Nommage
    • Base URL
    • Media Type
    • Versioning
    • Propriété “id”
    • Polymorphisme
    • Datetime
    • Ressource d'Association
    • Pourquoi Appliquer ces Bonnes Pratiques
    • Zalando ReSTful API Guidelines
  • Les Outils
    • Swagger
    • OpenAPI Visual Editors
    • IDE Plugins
    • Postman
    • Insomnia
    • Fake & Sandbox
    • JSON Generator
    • Pact
  • Sécurité des APIs ReST
    • OWASP Top 10
    • Authentification et Session Management
    • Autorisation et Gestion des Permissions
    • Validation, Canonicalization, Escaping & Sanitization
    • Cookies are EVIL
    • C.O.R.S.
    • C.S.R.F.
    • C.S.R.F. & Media Type
    • C.S.R.F. Mitigation
    • C.S.R.F. & "Resource Linking"
    • J.O.S.E.
      • J.W.K.
      • J.W.S.
      • J.W.E.
    • J.W.T.
      • Description et Fonctionnement de JWT
      • Usages et Avantages
      • Utilisation de JWT pour l’Authentification
      • JWT, Authentification, Sessions et Risques Sécurité
      • Recommandations JWT
    • OAuth 2
      • OAuth 2 Roles
      • OAuth 2 Abstract Flow
      • OAuth 2 Authorization Code Flow
      • OAuth 2 Implicit Flow
      • OAuth 2 Resource Owner Password Credentials Flow
      • OAuth 2 Client Credentials
      • OAuth 2 Registration
      • OAuth 2 Risques & Recommandations
      • OAuth 2 Substitution Attack
    • OpenID Connect
      • Terminologie
      • Quoi de Neuf ?
      • OpenID Connect Flows
      • Que Faire ?
  • Autres Spécifications
    • JSON API
    • H.A.L.
    • JSON LD
    • Les Autres Initiatives
    • So What?
  • Quelques Liens & Ressources
  • Stay Tuned
    • 📝Blog
    • 🐦Twitter
    • 📬Newsletter
Propulsé par GitBook
Sur cette page
  • Level 0 : The Swamp of POX
  • Level 1 : Resources
  • Level 2 : HTTP Verbs
  • Level 3 : Hypermedia Controls
  1. API ReST

Le Modèle de Maturité de Richardson

Le Modèle de Maturité de Richardson ou Web Service Maturity Heuristic

PrécédentLes 5 règles et ½ de l’API ReSTSuivantH.A.T.E.O.A.S. & Resource Linking

Dernière mise à jour il y a 6 ans

(2008)

*P.O.X. : Plain Old XML

Level 0 : The Swamp of POX

XML-RPC over HTTP.

Level 1 : Resources

L’API respecte le modèle de données et chaque ressource peut être identifiée avec une URL.

POST /blogs/11111/posts
POST /posts/22222/comments
GET /comments/33333

Level 2 : HTTP Verbs

Utilisation des méthodes HTTP autres que GET et POST pour signifier l’action souhaitée : PATCH / PUT / DELETE.

… et surtout les “status codes” HTTP pour résumer le résultat de l’opération :

200 : OK 201 : Created 204 : No Content (delete) 400 : Bad Request 401 : Unauthorized 403 : Forbidden 404 : Not Found 409 : Conflict …

Bien sûr, les erreurs 4xx peuvent contenir un "body" avec des informations additionnelles.

Utilisez le bon vocabulaire et évitez les APIs schtroumpf !

SCHTROUMPF /q?data=select:*:from:carts

Level 3 : Hypermedia Controls

Hypermedia est l’une des principales règles de la thèse de Fielding.

L’idée est de retrouver dans les API ReST la même logique Hypermedia qu’en HTML par exemple. Aujourd’hui, cela se résume principalement par la présence de liens dans les ressources permettant de définir la relation avec d’autres ressources.

L’API ReST devient alors discoverable.

https://www.crummy.com/writing/speaking/2008-QCon/act3.html
Le Modèle de Maturité de Richardson ou Web Service Maturity Heuristic
Plain Old XML
Tag Soup
ReST vs SOAP
Resources
What The Smurf!?