HATEOAS

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

HATEOAS (Hypermedia as the Engine of Application State, v překladu Hypermedia jako aplikační stav) je v informatice jedním ze základních principů REST architektury, kterým se odlišuje od ostatních síťových aplikačních architektur. Princip spočívá v komunikaci klientské aplikace s aplikačním serverem skrze dynamicky poskytované hypermédium. REST klient nepotřebuje žádné předchozí znalosti o tom, jak komunikovat s jakoukoliv částí aplikačního serveru - kromě všeobecného porozumění poskytovanému hypermédiu. Jako opak jsou architektury orientované na služby SOA (Service Oriented Architecture), ve kterých je komunikace mezi klientem a serverem dána fixním rozhraním. Rozhraní může být definováno dokumentací nebo pomocí Interface description language (IDL).

HATEOAS princip v REST architektuře odděluje klienta od serveru způsobem, který umožňuje serveru nezávislé rozšiřování funkcionality.

Komunikace

REST klient se dotáže serverové REST aplikace skrze [url=/1.1 Host: somebank.org Accept: application/xml ...

V odpovědi přišly informace o daném účtu:

[/url]url=/1.1 200 OK Content-Type: application/xml Content-Length: ...

12345 100.00

Spolu s informacemi o bankovním účtu jsou dostupné 4 možné akce dostupné přes poskytnuté odkazy: * Vložit peníze (deposit) * Vybrat peníze (withdraw) * Převod peněz (transfer) * Uzavření účtu (close)

Při pozdějším dotazu na informace o účtu, kdy bude v tomto případě zůstatek na účtě záporný, bude odpověď serveru vypadat takto:

[/url]url=/1.1 200 OK Content-Type: application/xml Content-Length: ...

12345 -25.00

Teď je již dostupný pouze jeden odkaz/akce: vložení peněz(deposit). A to kvůli tomu, že v aktuálním stavu nejsou jiné akce povoleny.

Klient nemusí rozumět všem typům media nebo komunikačním mechanismům serveru. Schopnost rozumět novým či jiným typům media může být získána za běhu aplikace pomocí „code-on-demand“, v překladu „získání kódu na požádání“. +more V praxi to znamená, že server navrátí kód, například v [[JavaScript][Uniform Resource Locator|URL]]. Všechny následující akce, které klientská aplikace může provést, jsou obsažené v resource vrácené serverem. Typ internetového média (Content type), v němž je resource navrácený serverem reprezentován, je standardizován, stejně tak jako vztahy k volitelným odkazům v něm uvedených.

Klient tak pomocí dostupných odkazů může manipulovat s resource, či získávat jiná k němu vztahující se data. Takto je docíleno tzv. +more RESTful komunikace, která je řízena pouze pomocí hypermedia a jím poskytnutých informací o dostupných akcí nad resource.

Jako příklad je zde dotaz na server HTTP metodou GET k získání resource (informací) bankovního účtu reprezentového v XML:

GET /account/12345[/url]]u, který rozšíří funkcionalitu klienta.

Původ

HATEOAS je základním principem umožňující jednotné rozhraní REST aplikací. Obojí bylo definováno v dizertační práci Roye Fieldinga.

Koncept byl hlouběji pro vývojáře popsán na jeho blogu.

Účelem některých přísností tohoto a dalších omezení REST, vysvětluje Fielding, je "návrh softwaru v měřítku desetiletí: každý detail je určen k podpoře dlouhé životnosti softwaru a nezávislého vývoje. Mnohá omezení jsou přímo proti krátkodobým efektivita. +more Bohužel, lidé jsou docela dobří v krátkodobém designu a obvykle jsou hrozní v dlouhodobém designu. ".

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top