что такое гипермедиа, элементы управления гипермедиа, форматы гипермедиа

в настоящее время я читаю книгу "отдых на практике". Я не могу понять следующую терминологию гипермедиа, формат гипермедиа, элементы управления гипермедиа, протокол доменного приложения. Автор предлагал использовать специфичный для домена формат гипермедиа. Я едва мог понять их. Я погуглил эти термины, но не смог найти правильный ответ. Может ли кто-нибудь объяснить эти терминологии и почему нам нужны доменные форматы гипермедиа вместо application/xml ?

2 ответов


Hypermedia = тот факт, что клиент и сервер говорят в терминах некоторого единого представления, например: hyper links.


HyperMedia Control = ресурс должен иметь операцию на нем. Так, например, продукт представлен доменом гиперссылки / product / 001 затем ресурс может управляться (редактироваться и удаляться) с помощью гипермедиа Control domain/product/001/edit и domain/product/001/delete.


самая большая разница в подход. процедурные системы сначала записывают операции как переходы состояний в последовательном коде (java и т. д.), Затем взаимодействия производятся как гиперссылки для доставки HATEOAS.

но системы, рассматриваемые как взаимодействия, непосредственно моделируют взаимодействия и, следовательно, предоставляют гиперссылки напрямую. Пример примера -http://www.masterkube.com/hateoas_technology.html здесь.

надеюсь, что это помогает.


в этом есть много путаницы, потому что большинство приложений, которые называют себя REST, не используют гипермедиа и вообще не отдыхают.

гипермедиа является обобщением гипертекста для контента, отличного от HTML. Можно сказать, что гипертекст-это подмножество гипермедиа. Гипермедиа может быть HTML в браузере, со всеми ссылками, кнопками и всем, что отображается, чтобы вы могли просматривать веб-сайт, или это может быть документ XML или JSON, предназначенный для автоматического анализа клиент, который также будет следовать ссылкам и действиям, как человек, будет делать с браузером, нажимая ссылки и кнопки.

HATEOAS означает, что взаимодействие клиента с приложением REST должно управляться гипермедиа или, проще говоря, клиент должен получить все URI для каждого ресурса, который ему нужен, следуя ссылкам в представлении самих ресурсов, а не полагаясь на внеполосную информацию, такую как шаблоны URI, приведенные в документации, как многие API делать.

это проще, чем кажется. Это просто означает, что взаимодействие между клиентом и приложением REST должно быть точно таким же, как человек, просматривающий веб-сайт. Возьмем, к примеру, Stack Overflow. Есть пользователи, вопросы и ответы. Когда вы хотите увидеть список своих вопросов, вы не идете на веб-сайт документации, получаете шаблон URI для перечисления ваших вопросов, заполняете заполнитель своим идентификатором пользователя и вставляете его в brownser. Вы просто нажимаете на ссылку на другой документ описан как список вопросов, и вам даже все равно, что такое точный URI. Это то, что HATEOAS означает на практике.

An гипермедиа формаt определяет контракт между клиентом и сервером. Это формат данных с поддержкой гиперссылок, используемый для конкретного представления ресурса в приложении гипермедиа. Например, если у вас есть пользовательский ресурс, вы должны документировать, что именно клиенты должны ожидать от представления этого ресурса и как анализировать представление для извлечения информации. Прежде чем взаимодействовать с вашим API, вашим клиентам необходимо реализовать парсер для извлечения информации, им нужно знать, какие свойства имеет ресурс и что они имеют в виду, какие связи они должны ожидать и какие переходы состояния доступны и т. д.

управление гипермедиа являются комбинациями методов протокола и связей связи в формате гипермедиа, который сообщает клиенту какие переходы состояния доступны и как их выполнять. Например, вопрос может иметь rel=post_answer ссылка, которая ожидает представление ответа в качестве полезной нагрузки метода POST и создаст новый ресурс ответа, связанный с ним.

как только у вас будет определен набор форматов гипермедиа, вам понадобится домен конкретного типа носителя чтобы точно определить, какой формат гипермедиа используется для конкретного взаимодействия. Общий тип носителя, например application/xml только рассказывает клиент, как анализировать формат данных, ничего не говорит об информации, извлеченной синтаксическим анализатором. Например, предположим, что документ имеет тип носителя application/vnd.mycompany.user.v1+xml, клиент знает, что это представление пользовательского ресурса версии 1.0 в формате XML. Если вы измените ресурс, добавив или удалив свойства, ссылки и т. д., Вы можете изменить номер версии, и клиенты не сломаются, так как они могут запросить версию, для которой они были реализованы, используя