Sobes.tech
Middle+

Leg uit wat het HATEOAS-principe is.

sobes.tech AI

Antwoord van AI

HATEOAS (Hypermedia als Motor van Toepassingsstatus) is een beperking van de REST-architectuur die voorschrijft dat de client volledig via hypermedia, geleverd door de server in de antwoorden, met de REST-service communiceert.

In plaats van vooraf de URI's van alle bronnen en acties te kennen, ontvangt de client deze informatie in de vorm van links en formulieren ingebed in de representaties van de bronnen.

Belangrijke aspecten:

  • Zelfbeschrijvende berichten: Elk bericht dat naar de client wordt gestuurd, bevat naast de gegevens links naar gerelateerde bronnen en beschikbare acties.
  • Geen voorafgaande kennis van URI's nodig: De client volgt de hypermedia om door de API te navigeren en acties uit te voeren. Het kent alleen het initiële toegangspunt.
  • Verbeterde evolutie: De server kan de URI's van bronnen wijzigen zonder de logica van de client te veranderen, zolang hij de juiste hypermedia blijft leveren.
  • Vermindering van de koppeling tussen client en server: De client is minder afhankelijk van de interne structuur van de server.

Voorbeeld van een resource-representatie met HATEOAS:

{
  "orderId": "123",
  "status": "Pending",
  "items": [
    {
      "itemId": "A45",
      "quantity": 2
    }
  ],
  "_links": {
    "self": {
      "href": "/orders/123"
    },
    "cancel": {
      "href": "/orders/123/cancel",
      "method": "POST" // Geeft het type actie aan
    },
    "customer": {
      "href": "/customers/C99"
    }
  }
}

Hier bevat _links URIs voor de resource zelf, de mogelijkheid om de bestelling te annuleren en de gerelateerde klant. De client, die deze representatie ontvangt, weet hoe hij deze acties kan uitvoeren zonder dat de URIs "vastgezet" zijn in zijn code.

Hoewel HATEOAS een kernprincipe van REST is, kan de volledige en consistente toepassing ervan in de praktijk moeilijk zijn.