Sobes.tech
Middle+

Explique le principe de HATEOAS.

sobes.tech IA

Réponse de l'IA

HATEOAS (Hypermedia en tant que moteur d’état de l’application) est une contrainte de l’architecture REST qui stipule que le client interagit avec le service REST uniquement via des hypermédias fournis par le serveur dans les réponses.

Au lieu de connaître à l’avance les URI de toutes les ressources et actions, le client reçoit cette information sous forme de liens et de formulaires intégrés dans les représentations des ressources.

Aspects clés:

  • Messages auto-descriptifs: Chaque message envoyé au client, en plus des données, contient des liens vers des ressources associées et des actions disponibles.
  • Pas besoin de connaître les URI à l’avance: Le client suit les hypermédias pour naviguer dans l’API et effectuer des actions. Il ne connaît que le point d’accès initial.
  • Amélioration de l’évolutivité: Le serveur peut modifier les URI des ressources sans changer la logique du client, tant qu’il continue à fournir les hypermédias appropriés.
  • Réduction du couplage client-serveur: Le client dépend moins de la structure interne du serveur.

Exemple de représentation d’une ressource avec HATEOAS:

{
  "orderId": "123",
  "status": "Pending",
  "items": [
    {
      "itemId": "A45",
      "quantity": 2
    }
  ],
  "_links": {
    "self": {
      "href": "/orders/123"
    },
    "cancel": {
      "href": "/orders/123/cancel",
      "method": "POST" // Indique le type d’action
    },
    "customer": {
      "href": "/customers/C99"
    }
  }
}

Ici, _links contient des URI pour la ressource elle-même, la possibilité d’annuler la commande et le client associé. Le client, en recevant cette représentation, sait comment effectuer ces actions sans que leurs URI soient "encodés" dans son code.

Bien que HATEOAS soit un principe clé de REST, son application complète et cohérente peut être difficile en pratique.