Sobes.tech
Middle+

Vysvětlete princip HATEOAS.

sobes.tech AI

Odpověď od AI

HATEOAS (Hypermedia jako motor stavu aplikace) je omezení architektury REST, které stanoví, že klient komunikuje s REST službou výhradně prostřednictvím hypermedíí poskytovaných serverem v odpovědích.

Namísto toho, aby předem znal URI všech zdrojů a akcí, obdrží tyto informace ve formě odkazů a formulářů vložených do reprezentací zdrojů.

Klíčové aspekty:

  • Samozřejmě popisující zprávy: Každá zpráva odeslaná klientovi, kromě dat, obsahuje odkazy na související zdroje a dostupné akce.
  • Není třeba znát URI předem: Klient následuje hypermedii, aby se pohyboval v API a vykonával akce. Zná pouze počáteční bod.
  • Vylepšená evoluce: Server může měnit URI zdrojů bez změny logiky klienta, pokud stále poskytuje odpovídající hypermedia.
  • Snížení vazby klient-server: Klient je méně závislý na vnitřní struktuře serveru.

Příklad reprezentace zdroje s HATEOAS:

{
  "orderId": "123",
  "status": "Pending",
  "items": [
    {
      "itemId": "A45",
      "quantity": 2
    }
  ],
  "_links": {
    "self": {
      "href": "/orders/123"
    },
    "cancel": {
      "href": "/orders/123/cancel",
      "method": "POST" // Určuje typ akce
    },
    "customer": {
      "href": "/customers/C99"
    }
  }
}

Zde obsahuje _links URIs pro samotný zdroj, možnost zrušení objednávky a souvisejícího zákazníka. Klient, který obdrží tuto reprezentaci, ví, jak tyto akce provést, aniž by jejich URI "byla zakódována" v jeho kódu.

Ačkoliv je HATEOAS klíčovým principem REST, jeho úplná a konzistentní aplikace může být v praxi obtížná.