Я сейчас читаю книгу «Отдых на практике». Я не могу понять следующую терминологию: гипермедиа, формат гипермедиа, средства гипермедиа, протокол доменных приложений. Автор предлагал использовать формат гипермедиа для домена. Я не мог понять это. Я googled эти условия, но не смог найти правильный ответ. Может ли кто-нибудь объяснить эти термины и почему нам нужны форматы гипермедиа для домена, а не application/xml?Что такое гипермедиа, средства гипермедиа, гипермедиа форматы
ответ
Hypermedia = факт, что клиент и сервер говорят в терминах некоторого единообразного представления, например: гиперссылки.
HyperMedia Control = Необходимо, чтобы на нем выполнялась работа. Так, например, продукт представлен доменом/продуктом гиперссылки/001 , тогда ресурс может управляться (отредактирован и удалён) с помощью домена/продукта/001/редактирования гипермедиа и домена/продукта/001/delete.
Самая большая разница в подходе. процедурные системы сначала записывают операции как переход состояния в последовательный код (java и т. д.), тогда взаимодействия производятся как гиперссылки для доставки HATEOAS.
Но системы непосредственно взаимодействуют с взаимодействиями и, следовательно, напрямую связывают гиперссылки. Пример примера - http://www.masterkube.com/hateoas_technology.html.
Надеюсь, это поможет.
Существует много путаницы в этом, потому что большинство приложений, которые называют себя REST, не используют гипермедиа и вообще не являются REST.
Hypermedia является обобщением гипертекста для контента, отличного от HTML. Вы можете сказать, что гипертекст - это подмножество гипермедиа. Hypermedia может быть HTML в браузере, со всеми ссылками, кнопками и всем, что отображается, чтобы вы могли просматривать веб-сайт, или это может быть документ XML или JSON, предназначенный для анализа автоматическим клиентом, который также будет следить за ссылками и действиями, такими как человек будет делать с браузером, щелкая визуализированные ссылки и кнопки.
HATEOAS означает взаимодействие клиента с приложением REST должны управляться гипермедиа, или попросту говоря, клиент должен получить все идентификаторы URI для каждого ресурса его необходимо с помощью ссылок в представлении самих ресурсов, не полагаясь на внеполосную информацию, такую как шаблоны URI, данные в документации, как это делают многие API.
Это проще, чем кажется. Это просто означает, что взаимодействие между клиентом и REST-приложением должно быть точно таким же, как просмотр веб-сайта человеком. Возьмите, например, Stack Overflow. Есть пользователи, вопросы и ответы. Когда вы хотите просмотреть список своих вопросов, вы не заходите на сайт документации, не получаете шаблон URI для перечисления своих вопросов, не заполняете его идентификатором пользователя и не вставляете его на свой коричневый. Вы просто нажимаете на ссылку на другой документ, описываемый как список вопросов, и вам даже не волнует, что такое точный URI. Вот что означает HATEOAS на практике.
hypermedia forma t определяет договор между клиентом и сервером. Это формат данных с поддержкой гиперссылки, который вы используете для конкретного представления ресурса в приложении гипермедиа. Например, если у вас есть ресурс пользователя, вы должны документировать то, что именно клиенты должны ожидать от представления этого ресурса и как анализировать представление для извлечения информации. Прежде чем взаимодействовать с вашим API, вашим клиентам необходимо внедрить парсер для извлечения информации, им нужно знать, какие свойства ресурс и что они означают, какие отношения связей они должны ожидать и какие переходы состояния доступны и т. Д.
Элементы управления Hypermedia - это комбинации методов протокола и связей в формате гипермедиа, которые сообщают клиенту, какие переходы состояния доступны и как их выполнять. Например, вопрос может содержать ссылку rel=post_answer
, которая ожидает представления ответа как полезную нагрузку метода POST и создаст новый связанный с ним ресурс ответа.
Как только вы определили набор форматов гипермедиа, вам необходимо указать тип медиафайла, чтобы точно определить, какой формат гипермедиа используется для конкретного взаимодействия. Общий медиа-тип, такой как application/xml
, сообщает клиенту, как анализировать формат данных, он ничего не говорит об информации, извлеченной парсером. Например, предположим, что у документа есть медиа-тип application/vnd.mycompany.user.v1+xml
, клиент знает, что это представление 1.0 ресурса пользователя в формате XML.Если вы измените ресурс, добавив или удалив свойства, ссылки и т. Д., Вы можете изменить номер версии, и клиенты не сломаются, так как они могут запросить версию, для которой они были реализованы, используя заголовок Accept
. Вы также можете предоставить несколько форматов для одного и того же ресурса, таких как XML или JSON, и даже довольно удобочитаемое для человека представление в HTML.
Когда вы объединяете все вместе - базовый протокол, HTTP; контракты, определенные форматами гиперссылок и типами носителей, - у вас есть протокол доменных приложений, который представляет собой весь набор ресурсов и доступных состояний, которые рекламируются вашим приложением.
Излишне говорить, что 99% так называемых REST API, которые вы найдете в Интернете, не следуют всему этому. Большинство из них - это просто API-интерфейсы HTTP, которые следуют некоторым ограничениям REST, иногда потому, что им действительно не нужны все они, иногда потому, что разработчики считают, что REST действительно есть.
- 1. Runtime открытия гипермедиа HATEOAS?
- 2. ОТДЫХ без гипермедиа?
- 3. Глаголы в RESTFUL (гипермедиа) API
- 4. Play, маршрут синтаксический и Гипермедиа API,
- 5. REST: формы, ссылки и формат гипермедиа
- 6. Разрешающая собственный гипермедиа АНИ в ссылки
- 7. Что делает «форматы гипермедиа данных» означает в известной диссертации Филдинга, когда речь идет о Куках
- 8. Как удалить элементы гипермедиа из представлений, созданных Spring Data REST?
- 9. URL обработка в гипермедиа (HATEOAS), приводимое AngularJS применение
- 10. AngularJS с гипермедиа (HATEOAS): как использовать HyperMedia URLS accross состояния
- 11. Как обрабатывать обновления ресурса REST при использовании гипермедиа-ссылок
- 12. Правильный подход к созданию гипермедиа в C# WebAPI
- 13. Как создать хороший формат гипермедиа с использованием JMSSerializerBundle?
- 14. Добавление гипермедиа для ресурса JSON-представление с использованием Jackson
- 15. Web2PY статус гипермедиа для создания REST API для таблиц базы данных
- 16. Как можно обрабатывать постраничные результаты из RESTful API с поддержкой гипермедиа, если базовые данные могут измениться?
- 17. Разоблачения гипермедиа ссылки на коллекции даже это пустое с использованием Spring Data Rest
- 18. Как создать гипермедиа ссылки в пользовательском сериализаторе с Spring Data Rest
- 19. spring-hateoas, Как установить значение держателя места при построении гипермедиа-ссылки, используя onMethod
- 20. Что такое встроенные средства
- 21. В диспетчере API WSO2 есть способ поддержки гипермедиа-ответа (например, application/vnd.hal + json или application/vnd.siren + json)?
- 22. Как отправить POST документ с ручным идентификатором в базе данных MongoDB из Spring RESTful Spring на базе гипермедиа?
- 23. Является ли RESTful API чрезмерным использованием/неправильным использованием?
- 24. Что такое средства для дома, нагрузки, тела, головы?
- 25. REST: Что такое хорошая стратегия кэширования гипермаркетов и ресурсов?
- 26. Single Application Page и RESTful API
- 27. REST подходит для веб-приложений?
- 28. Pure HTML vs frameworks для определения API HATEOAS?
- 29. Что должно быть href ответа коллекции, если я получаю один элемент этой коллекции?
- 30. CVPixelFormatType: Что означают форматы пикселей?
Как приложение/vnd.mycompany.user.v1 + xml передает пользователю информацию, которая должна быть проанализирована? – vishnu
Это не так. Документация, описывающая 'application/vnd.mycompany.user.v1 + xml', делает. –
Является ли это HATEOAS, если приложение предоставляет только ссылку на источник, созданный POST в заголовке местоположения ответа? Или термин hypermedia включает только ссылки, которые содержатся внутри тела? – Marv