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á.