- PVSM.RU - https://www.pvsm.ru -
В этой статье вы продолжите изучать REST API и узнаете о HATEOAS.
При просмотре веб-страницы вы можете просматривать данные на странице и выполнять с ними действия.
Как насчет REST API? Как правило, когда вы запрашиваете REST ресурс, вы получаете информацию о ресурсе обратно. Как насчет отправки операций, которые вы можете сделать с ресурсом в ответе?

Это пятая статья в серии статей про REST API:
Термин HATEOAS означает фразу «Hypermedia As The Engine Of Application State» (Гипермедиа как двигатель состояния приложения). Чтобы понять это глубже, нам сначала нужно понять значение гипермедиа. Взгляните на следующую веб-страницу:

Когда браузер загружает страницу, вы определенно можете увидеть весь контент, который может предложить эта страница. Что еще более интересно, страница также позволяет вам выполнять множество действий с этими данными, например:
Теперь давайте посмотрим, как ведут себя наши REST API:
Если вы посмотрите на типичный запрос GET к RESTful серверу, такой как этот:

Запрос GET localhost [5]:8080/users получает набор данных трех пользователей в этом случае. Отправив запрос с помощью GET localhost [5]:8080/users/1, вы получите сведения только о первом пользователе. Как правило, когда мы выполняем запрос REST, мы получаем только данные, а не какие-либо действия с ними. Вот где HATEOAS восполняет пробел. Запрос HATEOAS позволяет вам не только отправлять данные, но и указывать связанные действия:

Этот пример был в формате JSON. Формат XML для другого примера будет выглядеть примерно так:

Когда вы отправляете этот запрос для получения данных учетной записи, вы получаете оба:
С HATEOAS запрос на REST ресурс дает мне как данные, так и действия, связанные с данными.
Единственная самая важная причина для HATEOAS — слабая связь (loose coupling). Если потребителю службы REST необходимо жестко закодировать все URL-адреса ресурсов, он тесно связан с реализацией вашей службы. Вместо этого, если вы вернете URL-адреса, которые он может использовать для действий, он будет слабосвязанным. Нет строгой зависимости от структуры URI, так как она указана и используется в ответе. Несколько важных тем, связанных с HATEOAS:
При разработке службы RESTful необходимо указать, как возвращать данные и ссылки, соответствующие запросу. HAL — это формат, который обеспечивает простой и согласованный способ гиперссылки между ресурсами в вашем REST API. Вот пример:

С HAL у вас есть несколько категорий представлений:
Если вам довелось использовать Spring Framework для разработки REST сервиса, то Spring HATEOAS — хороший механизм для вашего сервиса.
По этому вопросу имеется авторское видео [6].
В этой статье мы рассмотрели, что означает HATEOAS.
С помощью HATEOAS ответы на запросы REST возвращают не только данные, но и действия, которые можно выполнить с ресурсом.
Это помогает сделать приложения слабосвязанными.
HATEOAS REST Services With Spring [8]
Spring HATEOAS: Hypermedia APIs with Spring [9] (добавлено переводчиком)
Автор: val6852
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/342751
Ссылки в тексте:
[1] Введение в REST API — RESTful веб-сервисы: https://dzone.com/articles/introduction-to-rest-api-restful-web-services
[2] Различия REST и SOAP: https://dzone.com/articles/rest-vs-soap-a-few-perspectives
[3] Разработка REST API — что такое Contract First (контракт в первую очередь)?: https://habr.com/ru/topic/edit/483206/
[4] Разработка REST API — что такое Code First (код в первую очередь)?: https://habr.com/ru/topic/edit/483322/
[5] localhost: http://localhost
[6] видео: https://youtu.be/gCNAudrbWCo
[7] REST + MongoDB + HATEOAS?: https://dzone.com/articles/rest-mongodb-hateoas
[8] HATEOAS REST Services With Spring: https://dzone.com/articles/hypermedia-driven-rest-services-with-spring-hateoa
[9] Spring HATEOAS: Hypermedia APIs with Spring: https://www.infoq.com/presentations/spring-hateoas-1/
[10] Источник: https://habr.com/ru/post/483328/?utm_campaign=483328&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.