<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F%3AHATEOAS</id>
	<title>Русская Википедия:HATEOAS - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F%3AHATEOAS"/>
	<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:HATEOAS&amp;action=history"/>
	<updated>2026-10-16T04:46:29Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:HATEOAS&amp;diff=8667627&amp;oldid=prev</id>
		<title>EducationBot: Новая страница: «{{Русская Википедия/Панель перехода}} '''HATEOAS''' ('''H'''ypermedia '''a'''s '''t'''he '''E'''ngine '''o'''f '''A'''pplication '''S'''tate''') — архитектурные ограничения для REST-приложений.  С помощью HATEOAS клиент взаимодействует с сетевым приложением, сервер которого обеспечивает динамический д...»</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:HATEOAS&amp;diff=8667627&amp;oldid=prev"/>
		<updated>2023-07-14T20:08:34Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{Русская Википедия/Панель перехода}} &amp;#039;&amp;#039;&amp;#039;HATEOAS&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039;ypermedia &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039;s &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;he &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;ngine &amp;#039;&amp;#039;&amp;#039;o&amp;#039;&amp;#039;&amp;#039;f &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;pplication &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;tate&amp;#039;&amp;#039;&amp;#039;) — архитектурные ограничения для &lt;a href=&quot;/ruwiki/index.php?title=REST&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;REST (страница не существует)&quot;&gt;REST&lt;/a&gt;-приложений.  С помощью HATEOAS клиент взаимодействует с сетевым приложением, сервер которого обеспечивает динамический д...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Русская Википедия/Панель перехода}}&lt;br /&gt;
'''HATEOAS''' ('''H'''ypermedia '''a'''s '''t'''he '''E'''ngine '''o'''f '''A'''pplication '''S'''tate''') — архитектурные ограничения для [[REST]]-приложений.&lt;br /&gt;
&lt;br /&gt;
С помощью HATEOAS клиент взаимодействует с сетевым приложением, сервер которого обеспечивает динамический доступ через [[гипермедиа]]. REST-клиенту не требуется заранее знать, как взаимодействовать с приложением или сервером за пределом гипермедиа.&lt;br /&gt;
&lt;br /&gt;
В отличие от архитектуры [[Сервис-ориентированная архитектура|SOA]], где взаимодействие клиента с сервером строго определены интерфейсом, HATEOAS отделяет клиента от сервера и позволяет им независимо развиваться.&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
REST-клиент обращается к фиксированному URL, а все последующие действия клиента становятся известными из возвращаемых с сервера ресурсов. Типы ресурсов, представления и их связи стандартизированы. Клиент проходит по ресурсам, выбирая ссылки или взаимодействуя любым другим способом, возможным для этого типа ресурса. Таким образом RESTful-взаимодействия работают через гипермедиа, а не через заранее указанный интерфейс&amp;lt;ref name=untangled2008 /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, сделать запрос возвращающий ресурс счёта в XML-представлении&amp;lt;ref name=&amp;quot;The RESTful CookBook&amp;quot;&amp;gt;{{Cite web |url=http://restcookbook.com/Basics/hateoas |title=&amp;quot;The RESTful CookBook&amp;quot; |access-date=2017-11-01 |archive-date=2020-01-31 |archive-url=https://web.archive.org/web/20200131181654/http://restcookbook.com/Basics/hateoas/ |deadlink=no }}&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;http&amp;quot;&amp;gt;&lt;br /&gt;
GET /accounts/12345 HTTP/1.1&lt;br /&gt;
Host: bank.example.com&lt;br /&gt;
Accept: application/xml&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ будет таким::&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;http&amp;quot;&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Content-Type: application/xml&lt;br /&gt;
Content-Length: ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;account&amp;gt;&lt;br /&gt;
    &amp;lt;account_number&amp;gt;12345&amp;lt;/account_number&amp;gt;&lt;br /&gt;
    &amp;lt;balance currency=&amp;quot;usd&amp;quot;&amp;gt;100.00&amp;lt;/balance&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;deposit&amp;quot; href=&amp;quot;https://bank.example.com/accounts/12345/deposit&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;withdraw&amp;quot; href=&amp;quot;https://bank.example.com/accounts/12345/withdraw&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;link rel=&amp;quot;transfer&amp;quot; href=&amp;quot;https://bank.example.com/accounts/12345/transfer&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;close&amp;quot; href=&amp;quot;https://bank.example.com/accounts/12345/close&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/account&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ содержит ссылки на депозит, снятие, перевод и закрытие аккаунта&lt;br /&gt;
&lt;br /&gt;
В случае отрицательного баланса, доступен только депозит:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;http&amp;quot;&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Content-Type: application/xml&lt;br /&gt;
Content-Length: ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;account&amp;gt;&lt;br /&gt;
    &amp;lt;account_number&amp;gt;12345&amp;lt;/account_number&amp;gt;&lt;br /&gt;
    &amp;lt;balance currency=&amp;quot;usd&amp;quot;&amp;gt;-25.00&amp;lt;/balance&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;deposit&amp;quot; href=&amp;quot;https://bank.example.com/account/12345/deposit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/account&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь доступна только одна ссылка: внести больше денег. Отсюда «the Engine of Application State» в названии. Возможные действия различаются в зависимости от состояния ресурса.&lt;br /&gt;
&lt;br /&gt;
Клиенту не нужно знать заранее типы ресурсов и механизмы взаимодействия с ним, через сервер. Понимание новых типов ресурсов приобретается в режиме реального времени, во время исполнения, при получении ресурсов от сервера&amp;lt;ref name=&amp;quot;Fielding-Ch5&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== История ==&lt;br /&gt;
В докторской диссертации Роя Филдинга определены ограничения HATEOAS как неотъемлемая часть функции «единого интерфейса»&amp;lt;ref name=&amp;quot;Fielding-Ch5&amp;quot;&amp;gt;{{Cite web |url=http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm |title=&amp;quot;Representational State Transfer (REST)&amp;quot; |access-date=2017-11-01 |archive-date=2021-05-13 |archive-url=https://web.archive.org/web/20210513160155/https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm |deadlink=no }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;untangled2008&amp;quot;&amp;gt;{{cite web|url=http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven|title=REST APIs must be hypertext-driven|date=20 Oct 2008|first=Roy T.|last=Fielding|accessdate=20 May 2010|archive-date=2010-03-18|archive-url=https://web.archive.org/web/20100318060707/http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven|deadlink=no}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{Примечания}}&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://spring-projects.ru/understanding/hateoas/ Понимание HATEOAS]&lt;br /&gt;
&lt;br /&gt;
{{Software Engineering}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Веб-программирование]]&lt;br /&gt;
[[Категория:Архитектура программного обеспечения]]&lt;br /&gt;
[[Категория:Распределённые вычисления]]&lt;br /&gt;
{{Навигационная таблица/Портал/Русская Википедия}}&lt;br /&gt;
[[Категория:Русская Википедия]]&lt;br /&gt;
[[Категория:Википедия]]&lt;br /&gt;
[[Категория:Статья из Википедии]]&lt;br /&gt;
[[Категория:Статья из Русской Википедии]]&lt;/div&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
</feed>