co to jest hypermedia, sterowanie hypermedia, formaty hypermedia

Obecnie czytam książkę "odpoczynek w praktyce". Nie jestem w stanie zrozumieć poniższej terminologii Hypermedia , Hypermedia format, Hypermedia controls, Domain application protocol. Autor sugerował potrzebę specyficznego dla domeny formatu hypermedia. Trudno mi to zrozumieć. Wygooglowałem te warunki, ale nie mogłem znaleźć właściwej odpowiedzi. Czy ktoś może wyjaśnić te terminologie i dlaczego potrzebujemy specyficznych dla domeny formatów hypermedia zamiast application / xml ?

Author: vishnu, 2015-04-12

2 answers

Hypermedia = fakt, że klient i serwer mówią w kategoriach jakiejś jednolitej reprezentacji np: hiperłącza.


HyperMedia Control = zasób musi być operowany na nim. Na przykład produkt jest reprezentowany przez domenę hiperłącza/product / 001 następnie zasób może być obsługiwany (edytowany i usuwany) przez hypermedia control domain/product/001/edit I domain/product/001 / delete.


Największa różnica polega na podejściu. systemy proceduralne najpierw zapisz operacje jako przejścia stanu w kodzie sekwencyjnym (java, itp.), a następnie interakcje są wytwarzane jako hiperłącza w celu dostarczenia HATEOAS.

Ale systemy traktowane jako interakcje bezpośrednio modelują interakcje, a tym samym dostarczają hiperłącza bezpośrednio. Przykładowy przykład to http://www.masterkube.com/hateoas_technology.html jest tutaj.

Mam nadzieję, że to pomoże.

 3
Author: Antony gonzalves,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-27 08:35:31

Jest w tym sporo zamieszania, ponieważ większość aplikacji, które nazywają siebie REST, nie korzysta z hypermedii i w ogóle nie odpoczywa.

Hypermedia jest uogólnieniem hipertekstu dla treści innych niż HTML. Można powiedzieć, że hipertekst jest podzbiorem hipermedii. Hypermedia może być HTML w przeglądarce, ze wszystkimi linkami, przyciskami i wszystkim, co jest renderowane, aby można było przeglądać stronę internetową, lub może to być dokument XML lub JSON przeznaczony do przetwarzania przez automatycznego klienta, który będzie również postępuj zgodnie z linkami i działaniami, jak człowiek zrobiłby to z przeglądarką, klikając renderowane linki i przyciski.

HATEOAS oznacza, że interakcja klienta z aplikacją REST musi być napędzana przez hypermedia, lub mówiąc prościej, klient powinien uzyskać wszystkie URI dla każdego zasobu, którego potrzebuje, podążając za odnośnikami w reprezentacji samych zasobów, a nie opierając się na poza-pasmowych informacjach, takich jak wzorce URI podane w dokumentacji, jak wiele API.

To jest prostsze niż się wydaje. Oznacza to po prostu, że interakcja między Klientem a aplikacją REST powinna być dokładnie taka, jak człowiek przeglądający stronę internetową. Weźmy na przykład samo przepełnienie stosu. Są użytkownicy, pytania i odpowiedzi. Jeśli chcesz zobaczyć listę swoich pytań, nie przechodzisz do strony dokumentacji, otrzymujesz szablon URI do wystawiania pytań, wypełniasz zastępczy identyfikator użytkownika i wklejasz go na browser. Wystarczy kliknąć na link do innego dokumentu opisanego jako lista pytań i nawet nie obchodzi cię, jaki jest dokładny URI. To właśnie oznacza HATEOAS w praktyce.

An hypermedia forma t definiuje umowę pomiędzy Klientem a serwerem. Jest to format danych z obsługą hiperłącza, którego używasz do konkretnej reprezentacji zasobu w aplikacji hypermedia. Na przykład, jeśli masz zasób użytkownika, musisz udokumentować, czego dokładnie klienci powinni oczekiwać od reprezentacji tego zasobu i jak analizować reprezentacja w celu wydobycia informacji. Przed interakcją z Twoim API, twoi klienci muszą zaimplementować parser, aby wyodrębnić informacje, muszą wiedzieć, jakie właściwości ma zasób i co one oznaczają, jakich powiązań powinni się spodziewać i jakie przejścia stanu są dostępne itp.

Hypermedia controls są kombinacjami metod protokołu i relacji w formacie hypermedia, który mówi klientowi, jakie przejścia stanu są dostępne i jak wykonaj je. Na przykład pytanie może mieć link rel=post_answer, który oczekuje reprezentacji odpowiedzi jako ładunku metody POST i utworzy nowy zasób odpowiedzi z nią związany.

Po zdefiniowaniu zestawu formatów hypermedia, potrzebujesz specyficznego dla domeny typu mediów , aby dokładnie określić, jaki format hypermedia jest używany do konkretnej interakcji. Ogólny typ nośnika, taki jak application/xml, mówi tylko klientowi, jak analizować format danych, nie mówi nic o informacje pobierane przez parser. Na przykład, załóżmy, że dokument ma typ nośnika application/vnd.mycompany.user.v1+xml, klient wie, że jest to wersja 1.0 reprezentacji zasobu użytkownika w formacie XML. Jeśli zmienisz zasób, dodając lub usuwając właściwości, linki itp., Możesz zmienić numer wersji, a klienci nie pękną, ponieważ mogą zażądać wersji, dla której zostały zaimplementowane za pomocą nagłówka Accept. Możesz również zapewnić wiele formatów dla tego samego zasobu, takich jak XML lub JSON, a nawet całkiem czytelna dla człowieka reprezentacja w HTML.

Kiedy zawijasz wszystko razem -- Podstawowy protokół HTTP; umowy zdefiniowane przez formaty i typy multimediów hypermedia -- masz swój Domain Application Protocol , który jest całym zestawem zasobów i dostępnych przejść stanu reklamowanych przez Twoją aplikację.

Nie trzeba dodawać, że 99% tak zwanych API REST, które znajdziesz w Internecie, nie śledzi tego wszystkiego. Większość z nich to po prostu API HTTP, które postępuj zgodnie z niektórymi ograniczeniami REST, czasami dlatego, że tak naprawdę nie potrzebują wszystkich z nich, czasami dlatego, że deweloperzy tak naprawdę uważają REST.
 63
Author: Pedro Werneck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-05 16:16:02