API REST - Qu'est-ce que HATEOAS?

Dans cet article, vous allez continuer d'explorer l'API REST et en savoir plus sur HATEOAS.

Lorsque vous affichez une page Web, vous pouvez afficher les données sur la page et effectuer des actions avec elles.

Que diriez-vous d'une API REST? En règle générale, lorsque vous demandez une ressource REST, vous récupérez les informations sur la ressource. Que diriez-vous d'envoyer des opérations que vous pouvez faire avec la ressource dans la réponse?



Vous apprendrez:


  • Qu'est-ce que HATEOAS?
  • Pourquoi avez-vous besoin d'utiliser HATEOAS?
  • Quand utiliser HATEOAS?

API REST


Il s'agit du cinquième article d'une série d'articles sur l'API REST:


Que signifie HATEOAS?


Le terme HATEOAS signifie la phrase «Hypermédia comme moteur de l'état d'application» (Hypermédia comme moteur d'état d'application). Pour comprendre cela plus profondément, nous devons d'abord comprendre le sens de l'hypermédia. Jetez un œil à la page Web suivante:



Lorsque le navigateur charge une page, vous pouvez certainement voir tout le contenu que cette page a à offrir. Plus intéressant, la page vous permet également d'effectuer de nombreuses actions avec ces données, par exemple:

  • Appuyer sur les boutons (vert «Clone» ou «Télécharger» (Télécharger)
  • Cliquer sur les onglets (par exemple, pour afficher les «problèmes»)
  • et quelques autres

Voyons maintenant comment nos API REST se comportent:

Si vous examinez une demande GET typique vers un serveur RESTful tel que celui-ci:



La requête GET localhost : 8080 / users reçoit un ensemble de données de trois utilisateurs dans ce cas. En envoyant une demande à l'aide de GET localhost : 8080 / users / 1 , vous ne recevrez que des informations sur le premier utilisateur. En règle générale, lorsque nous exécutons une demande REST, nous n'obtenons que des données, et aucune action avec celles-ci. C'est là que HATEOAS comble le vide. Une demande HATEOAS vous permet non seulement d'envoyer des données, mais également d'indiquer les actions associées:



Cet exemple était au format JSON. Le format XML d'un autre exemple ressemblerait à ceci:



Lorsque vous envoyez cette demande pour obtenir des informations de compte, vous obtenez à la fois:

  • Numéro de compte et données de solde
  • Liens qui fournissent des actions pour déposer / retirer / transférer / fermer

Avec HATEOAS, une demande de ressource REST me donne à la fois des données et des actions liées aux données.

Pourquoi avons-nous besoin de HATEOAS?


La raison la plus importante pour HATEOAS est le couplage lâche. Si le consommateur d'un service REST doit coder en dur toutes les URL de ressource, cela est étroitement lié à la mise en œuvre de votre service. Au lieu de cela, si vous renvoyez les URL qu'il peut utiliser pour des actions, il sera faiblement couplé. Il n'y a pas de dépendance stricte sur la structure de l'URI, comme il est indiqué et utilisé dans la réponse. Quelques sujets importants liés à HATEOAS:

HAL - Hypertext Application Language


Lors du développement d'un service RESTful, vous devez spécifier comment renvoyer les données et les liens correspondant à la demande. HAL est un format qui fournit un moyen simple et cohérent de créer un lien hypertexte entre les ressources de votre API REST. Voici un exemple:



Avec HAL, vous avez plusieurs catégories de vues:

  • Liens : indiqués comme une combinaison
  • Cible - spécifié comme URI
  • Relation - Nom
  • Ressources intégrées : autres ressources contenues dans cette ressource REST
  • État: données réelles sur les ressources

S'il vous arrive d'utiliser Spring Framework pour développer un service REST, Spring HATEOAS est un bon mécanisme pour votre service.

Sur cette question, il y a une vidéo d'auteur.

Résumé


Dans cet article, nous avons examiné ce que signifie HATEOAS.

Avec HATEOAS, les réponses aux demandes REST renvoient non seulement des données, mais également des actions pouvant être effectuées sur la ressource.

Cela permet de coupler les applications de manière lâche.

Lecture complémentaire


REST + MongoDB + HATEOAS?

Services HATEOAS REST avec Spring

Spring HATEOAS: API hypermédia avec Spring (ajoutées par le traducteur)

Source: https://habr.com/ru/post/fr483328/


All Articles