Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Java Spring
  3. Spring
Extrait - Java Spring Le socle technique des applications Jakarta EE (4e édition)
Extraits du livre
Java Spring Le socle technique des applications Jakarta EE (4e édition) Revenir à la page d'achat du livre

Spring-HATEOAS

Introduction

Dans ce chapitre nous allons aborder les différents niveaux de maturité des API REST.

Leonard Richardson a défini un modèle de maturité à quatre niveaux :

Le niveau zéro correspond au modèle le plus simple qui est à la base des services web de type SOAP avec souvent des messages en XML. Une URL de base sert toutes les requêtes de type POST et renvoie OK (code de retour 200).

POST http://monserveur/applicationcentrale 

Le niveau un correspond à l’ajout par encodage dans l’URL du nom d’une ressource et de ses identifiants, ce qui ajoute un peu de sémantique.

POST http://monserveur/utilisateur/55/email 

Le niveau deux correspond à l’utilisation des autres verbes tels que GET, PUT, DELETE, POST et PATCH qui indiquent ce que l’on veut faire avec la requête et introduit les réponses universellement reconnues 1xx, 2xx, 3xx, 4xx et 5xx. C’est le niveau des API REST traditionnelles.

DELETE http://monserveur/utilisateur/55 

Le niveau trois correspond au niveau HATEOAS (Hypermedia As The Engine Of Application State) qui signifie Hypermédia en tant que moteur de l’état d’application. Ce niveau est une option pour les API SOAP ou REST. Il consiste à instaurer le dialogue en ajoutant des liens hypermédias dans les réponses aux appels de services afin de guider l’utilisateur pour l’utilisation de l’API.

La réponse est enrichie avec des liens, comme par exemple :

{  
  "content":"Bonjour",  
  "_links":{  
    "self":{  
      "href":"http://localhost:8080/echo?name=Bonjour"  
    }  
  }  
} 

Lorsque le contenu de la réponse JSON contient des liens hypermédias créés avec Spring HATEOAS, les liens qui en résultent peuvent être vérifiés également :

mockMvc.perform(get("/people").accept(MediaType.APPLICATION_JSON)) 
.andExpect(jsonPath("$.links[?(@.rel == 
'self')].href").value("http://localhost:8080/people")**); 

Lorsque le contenu de la réponse XML contient des liens hypermédias créés...

Points clés

  • Spring propose un bon support de l’hypermédia de HATEOAS.

  • Les liens hypermédias permettent de naviguer dans les réponses.

  • HATEOAS peut être un plus dans un projet, car il aide à voir les liens.