Jump to content

НЕНАВИСТЬ

Гипермедиа как механизм состояния приложения ( HATEOAS ) является ограничением архитектурного стиля программного обеспечения REST , которое отличает его от других стилей сетевой архитектуры .

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

Напротив, клиенты и серверы в общей архитектуре брокера объектных запросов (CORBA) взаимодействуют через фиксированный интерфейс, общий для которого используется документация, или язык описания интерфейса (IDL).

Ограничения, налагаемые HATEOAS, разделяют клиент и сервер. Это позволяет функциональности сервера развиваться независимо.

Этот термин был придуман в 2000 году Роем Филдингом в его докторской диссертации. [1]

Пользовательский агент отправляет HTTP-запрос к REST API через URL-адрес точки входа . Все последующие запросы, которые может сделать пользовательский агент, обнаруживаются внутри ответа на каждый запрос. Типы носителей, используемые для этих представлений, и отношения ссылок, которые они могут содержать, являются частью API. Клиент переходит через состояния приложения, выбирая ссылки внутри представления или манипулируя представлением другими способами, предоставляемыми его типом носителя. Таким образом, взаимодействие RESTful управляется гипермедиа, а не внешней информацией. [2]

Например, этот запрос GET извлекает ресурс учетной записи, запрашивая подробную информацию в представлении JSON: [3]

GET /accounts/12345 HTTP/1.1Host: bank.example.com

Ответ:

HTTP/1.1 200 OK{    "account": {        "account_number": 12345,        "balance": {            "currency": "usd",            "value": 100.00        },        "links": {            "deposits": "/accounts/12345/deposits",            "withdrawals": "/accounts/12345/withdrawals",            "transfers": "/accounts/12345/transfers",            "close-requests": "/accounts/12345/close-requests"        }    }}

Ответ содержит следующие возможные последующие ссылки: ОТПРАВИТЬ депозит, вывод средств, перевод или запрос на закрытие (чтобы закрыть счет).

Например, позже, после перерасхода средств на счете, будет другой набор доступных ссылок, поскольку счет перерасходован.

HTTP/1.1 200 OK{    "account": {        "account_number": 12345,        "balance": {            "currency": "usd",            "value": -25.00        },        "links": {            "deposits": "/accounts/12345/deposits"        }    }}

Сейчас доступна только одна ссылка: внести больше денег (путем ПОСТинга на депозиты). В текущем состоянии другие ссылки недоступны. Отсюда и термин Engine of Application State . Возможные действия различаются в зависимости от состояния ресурса.

Клиенту не обязательно понимать каждый тип носителя и механизм связи, предлагаемый сервером. Способность понимать новые типы мультимедиа может быть приобретена во время выполнения с помощью « кода по требованию », предоставляемого клиенту сервером. [1]

Происхождение

[ редактировать ]

Ограничение HATEOAS является важной частью функции «унифицированного интерфейса» REST, как это определено в Роя Филдинга . докторской диссертации [1] Филдинг подробно описал эту концепцию в своем блоге. [2]

Целью некоторой строгости этого и других ограничений REST, объясняет Филдинг, является «проектирование программного обеспечения в масштабе десятилетий: каждая деталь предназначена для обеспечения долговечности программного обеспечения и независимой эволюции. К сожалению, люди довольно хороши в краткосрочном проектировании и обычно ужасны в долгосрочном проектировании». [2]

Реализации

[ редактировать ]
  • HTML сам по себе является гипермедиа, с <form>...</form> элемент управления HTTP-запросами к ссылкам. [2] [4]
  • HAL — гипермедиа, построенная на основе JSON или XML. Определяет ссылки, но не действия (HTTP-запросы).
  • JSON-LD , стандарт для гиперссылок в формате JSON. Не рассматривает действия.
  • Siren — гипермедиа, построенная на основе JSON. Определяет ссылки и действия. [5]
  • Collection+JSON — гипермедиа, построенная на основе JSON. Определяет ссылки и действия. [6]
  • JSON:API определяет ссылки и действия. [7]
  • Гидра . Создается на основе JSON-LD и добавляет определения действий. [8]

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б с Филдинг, Рой Томас (2000). «Передача представительского состояния (REST)» . Архитектурные стили и проектирование сетевых архитектур программного обеспечения (доктор философии). Калифорнийский университет в Ирвайне . п. 82. ИСБН  0599871180 .
  2. ^ Перейти обратно: а б с д Филдинг, Рой Т. (20 октября 2008 г.). «REST API должны управляться гипертекстом» . Проверено 20 мая 2010 г.
  3. ^ Тийссен, Джошуа (29 октября 2016 г.). «Что такое HATEOAS и почему это важно для моего REST API?» . Поваренная книга REST . Проверено 5 февраля 2020 г.
  4. ^ Гросс, Карсон. «ХАТЕОАС» . htmx.org . И это несмотря на то, что ни XML, ни JSON не были такими же естественными гипермедиа, как HTML.
  5. ^ Сирена: спецификация гипермедиа для представления сущностей на GitHub.
  6. ^ «Коллекция+JSON — тип гипермедиа» . Проверено 25 октября 2021 г.
  7. ^ «JSON API: последняя спецификация» . Проверено 25 октября 2021 г.
  8. ^ «Hydra: веб-API, управляемые гипермедиа» . Проверено 27 октября 2021 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3a4630836c7d759da0b50a3838a614e7__1718612460
URL1:https://arc.ask3.ru/arc/aa/3a/e7/3a4630836c7d759da0b50a3838a614e7.html
Заголовок, (Title) документа по адресу, URL1:
HATEOAS - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)