Введение
Мы знаем, что REST — это архитектурный метод, который определяет только шесть основных принципов, которым необходимо следовать, но эти принципы относительно широки, и нам нужны более конкретные ограничения, чтобы направлять наше кодирование. Это ХАТЕОАС.
Введение в HATEOAS
Полное английское название REST — REpresentational State Transfer, что означает передачу состояния. Полное название HATEOAS — Hypertext As The Engine Of Application State, что означает использование гипертекста в качестве состояния приложения. Так что эти двое связаны. HATEOAS определяет представление состояния.
Гипертекст — это ссылка.По правилам HATEOAS, все запросы ресурсов должны быть связаны, и эти ссылки указывают на следующие шаги, которые можно выполнить с ресурсом. Также эти ссылки динамически меняются в зависимости от запрашиваемого ресурса. Поэтому, если ваша архитектура реализует стиль HATEOAS, вы можете продолжать уменьшать зависимости интерфейса между клиентом и сервером. Потому что все, что можно сделать, уже размещено в гиперссылке, возвращающей ресурс.
Давайте возьмем пример или пример запроса студентов, если мы запросим:
GET /students/zhangsan HTTP/1.1
Host: api.rest.com
Accept: application/json
Тогда возвращенный json может выглядеть так:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: ...
{
"student": {
"student_id": 11111,
"age": 10,
"links": {
"school": "/student/11111/school"
}
}
}
Вы можете видеть, что возвращенная информация включает в себя собственную информацию учащегося и информацию о связанных ссылках, которая содержит информацию о школе учащегося. Клиент может продолжить работу по возвращенным ссылкам, чтобы получить дополнительную информацию.
Если мы посетим другого студента, посмотрим, в чем разница в возвращаемом результате:
GET /students/lisi HTTP/1.1
Host: api.rest.com
Accept: application/json
Тогда возвращенный json может выглядеть так:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: ...
{
"student": {
"student_id": 2222,
"age": 20,
"links": {
"school": "/student/2222/school",
"vote": "/student/2222/vote",
}
}
}
Увидеть разницу? На этот раз возраст студента = 20, поэтому он имеет право голоса На этот раз в наших ссылках есть дополнительная ссылка для голосования.
Ссылки будут отправлять изменения по разным ресурсам.Клиенту не нужно знать какую-либо серверную логику.Каждый запрос содержит все операции, которые можно продолжить, тем самым полностью разделив клиента и сервер.
В реальном мире, когда вы посещаете веб-сайт, вы нажимаете на его домашнюю страницу. Он предоставляет некоторые снимки и ссылки на другие части сайта. Вы нажимаете на них и получаете больше информации и более релевантные ссылки в контексте.
Подобно взаимодействию человека с веб-сайтом, клиент REST получает доступ к исходному URI API и использует ссылки, предоставленные сервером, для динамического обнаружения доступных операций и доступа к необходимым ресурсам. Клиентам не нужно заранее знать о различных этапах обслуживания или рабочего процесса. Кроме того, клиентам больше не нужно жестко кодировать структуру URI различных ресурсов. HATEOAS позволяет серверу вносить изменения в URI по мере развития API, не прерывая работу клиента.
Формат HATEOAS
HATEOAS имеет два важных формата: RFC 5988 (веб-ссылки) и JSON Hypermedia API Language (HAL).
Они немного отличаются, но принципы более или менее одинаковы. Заинтересованные друзья могут проверить это сами.
Весенняя поддержка для HATEOAS
Spring строит то, что нужно людям. Точно так же, для прекрасного сочетания REST+HATEOAS, как может отсутствовать Spring?
Spring представила Spring HATEOAS для достижения этой цели. Последняя версия 1.3.0, если вы используете загрузку Spring, ее будет проще использовать, просто процитируйте следующий XML:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
<version>2.5.1</version>
</dependency>
Если это загрузочная среда, отличная от Spring, на нее можно ссылаться следующим образом:
<dependency>
<groupId>org.springframework.hateoas</groupId>
<artifactId>spring-hateoas</artifactId>
<version>1.3.1</version>
</dependency>
Spring HATEOAS предоставляет ряд очень полезных функций, которые помогают нам создавать ссылки, тем самым облегчая нашу работу. Конкретное содержание Spring HATEOAS мы подробно объясним в следующих статьях.
Суммировать
Если вы используете архитектуру REST, то правила HATEOAS должны быть наилучшей комбинацией. желаю успехов.
Эта статья была включена вwoohoo. Флойд press.com/03-rest-hart…
Самая популярная интерпретация, самая глубокая галантерея, самые краткие уроки и множество трюков, о которых вы не знаете, ждут вас!