BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Spring ajoute le support d'HATEOAS aux Services Web basés sur REST

Spring ajoute le support d'HATEOAS aux Services Web basés sur REST

Le Framework Spring est en train d'ajouter le support pour HATEOAS (Hypermedia As The Engine Of Application State) qui permet de supporter des web services REST via des liens hypertextes. L'objectif principal de spring-hateoas est de proposer une API simplifiant la création de liens hypermedia et de créer des représentations de ressources REST quand ils sont utilisés avec Spring et plus particulièrement avec Spring MVC.

XML et JSON

La bibliothèque met à disposition un ensemble de types pour faciliter l'utilisation de XML et JSON.

Liens

Elle fournie également plusieurs classes pour gérer les liens et les relations.

La classe Link sert à créer et porter des liens basés sur la définition donnée par le standard Atom). Elle utilise les attributs rel et href pour gérer la relation et décrire le lien réel. Dans le cas du XML, la représentation du lien se fera dans le namespace Atom.

Un problème courant lors de la création d'URI est la multiplication des constantes dans l'application. Pour remédier à cela, la classe ControllerLinkBuilder extrait l'URI racine de la requête et y ajoute le mapping définit par le Controller pour la ressource correspondante pour obtenir l'URI complète.

Lorsque les ressources sont des représentations directes des classes du modèle, des classes sont fournies par Spring pour créer des liens pour ces types du modèle, pointant soit vers une collection de ressources soit vers une ressource simple.

Trouver le lien correspondant à une relation donnée est une tâche récurrente lorsqu'on utilise hypermerdia et Spring-hateoas propose pour cela d'utiliser la classe LinkDiscoverer.

Ressources

La bibliothèque contient également une classe dédiée à la création de ressources : ResourceSupport, dont il faut hériter pour avoir le support des liens. Pour réduire la quantité de code à produire pour le mapping entités-ressources et l'ajout de liens vers une ressource, une autre classe peut être utilisée : ResourceAssemblerSupport. Cet assembleur peut aussi bien créer une ressource simple qu'une collection de ressources.

Geraint Jones a écrit un article à ce sujet qui utilise spring-hateoas sur un scenario simple.

Lors de la JAX 2013, Martin Lippert a donné la présentation "Modern Architectures with Spring and JavaScript" qui montrait une utilisation de cette bibliothèque.

Spring HATEOAS est actuellement en version 0.5 et le travail pour la 0.6 a déjà commencé.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT