Sobes.tech
Middle+

Selgitage HATEOAS põhimõtet.

sobes.tech AI

Vastus AI-lt

HATEOAS (Hypermedia kui rakenduse oleku mootor) on REST arhitektuuri piirang, mis määrab, et klient suhtleb REST-teenusega täielikult hüpermeedia kaudu, mida server pakub vastustes.

Selle asemel, et eelnevalt teada kõiki ressursside ja toimingute URI-sid, saab klient selle teabe linkide ja vormidena, mis on sisseehitatud ressursside esindustesse.

Põhiaspektid:

  • Enesekirjeldavad sõnumid: Iga kliendile saadetud sõnum sisaldab lisaks andmetele ka linke seotud ressurssidele ja saadaval olevatele toimingutele.
  • Ei ole vaja teada URI ette: Klient järgib hüpermeediat, et liikuda API-s ja teha toiminguid. Ta teab ainult alguspunkti.
  • Paranenud evolutsioon: Server võib muuta ressursside URI-sid ilma kliendi loogikat muutmata, kuni ta jätkuvalt pakub sobivat hüpermeediat.
  • Vähendatud kliendi ja serveri sidusust: Klient sõltub vähem serveri sisemisest struktuurist.

Näide HATEOAS-resurssist:

{
  "orderId": "123",
  "status": "Pending",
  "items": [
    {
      "itemId": "A45",
      "quantity": 2
    }
  ],
  "_links": {
    "self": {
      "href": "/orders/123"
    },
    "cancel": {
      "href": "/orders/123/cancel",
      "method": "POST" // Näitab tegevuse tüüpi
    },
    "customer": {
      "href": "/customers/C99"
    }
  }
}

Siin _links sisaldab URIsid enda ressursile, tellimuse tühistamise võimalust ja seotud klienti. Klient, saades selle esinduse, teab, kuidas neid toiminguid teha, ilma et nende URI oleks tema koodis "sisselülitatud".

Kuigi HATEOAS on RESTi põhiprintsiip, võib selle täielik ja järjepidev rakendamine praktikas olla keeruline.