2015-04-15 8 views
0

Я ищу пример для примера Spring MVC Integration with HATEOAS. У меня много google, и я не нашел такого рабочего примера, который я могу понять. HATEOAS.Пример интеграции Spring HATEOAS

Я нахожу только https://github.com/spring-projects/spring-hateoas, который сам имеет много кода и становится очень трудно понять, может ли кто-нибудь предоставить мне полный рабочий пример кода?

+0

Вы заглянули в источник данных для отдыха? Git: https://github.com/spring-projects/spring-data-rest. Руководство http://docs.spring.io/spring-data/rest/docs/2.3.0.RELEASE/reference/html/ –

+0

Пример https://spring.io/guides/gs/accessing-data-rest/. Или https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-data-rest –

ответ

0

Вы можете посмотреть на этом примере Spring проекта/загрузки HATEOAS: https://github.com/opencredo/spring-hateoas-sample и некоторое объяснение в соответствующем блоге: Implementing HAL hypermedia REST API using Spring HATEOAS

примеры показывает простой, но не столь тривиальное API.

API представляет собой вымышленную библиотеку с каталогом книг, связанных с авторами и издателями.

Все ресурсы включают примеры ссылок. Книга GET также показывает, как вернуть различный уровень детализации, встраивая или связывая связанные ресурсы.

Помимо примеров GET для всех ресурсов, он также включает в себя другие «командные» конечные точки, например, для добавления книги в сбор, заимствования и возврата книг.

0

Существует довольно простой пример в this repository. Более продвинутую витрину можно найти в Spring RESTBucks.

+0

Спасибо, но ваша программа по ссылке выше не компилируется? – Prateek

0

Вот пример EchoService, описанный шаг за шагом с пояснениями в коде. Он использует Spring Boot HATEOAS и показывает образец теста Spock с помощью TestRestTemplate.

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

Наиболее распространенным примером является банковский счет в качестве ресурса. Доступ к ресурсу (учетной записи) возвращает различную информацию об этом и ссылки на операции, которые могут быть выполнены на нем. И эти операции (следовательно, доступные ссылки) зависят от состояния учетной записи. Если у пользователя есть деньги, тогда ссылки могут быть {«депозит»: «депозит-url», «снять»: «снять-url»}. Когда у пользователя нет денег на счету, возвращаемые ссылки (доступные действия) могут быть {«депозит»: «депозит-url»}. Таким образом, список доступных операций/действий/ссылок изменяется и зависит от состояния ресурса.

Другим распространенным примером является наличие разных пунктов меню в зависимости от роли/разрешений пользователя. В приложениях, которые генерируют целую страницу на стороне сервера, вы можете создавать ссылки на разные действия в шаблоне страницы с помощью простых проверок: if (isAdmin (currentUser)) {} else {...}. Но при использовании служб REST большинство клиентов - это приложения JavaScript, где вы не можете выполнять какие-либо проверки разрешений. Таким образом, здесь HATEOAS помогает, возвращая действия меню (ссылки) в зависимости от роли/разрешения пользователя на стороне сервера и клиента REST, не нужно беспокоиться об этом.

Надеюсь, это поможет. Ура! :-)

+0

Хотя это теоретически может ответить на вопрос, [было бы предпочтительнее] (// meta.stackoverflow.com/q/8259), чтобы включить здесь основные части ответа и предоставить ссылку для справки. – NathanOliver

Смежные вопросы