Вот пример EchoService, описанный шаг за шагом с пояснениями в коде. Он использует Spring Boot HATEOAS и показывает образец теста Spock с помощью TestRestTemplate.
HATEOAS означает (по крайней мере, на мой взгляд :-)), что вы обрабатываете HTTP-ресурс как конечный автомат, что означает, что он может меняться в зависимости от его внутреннего состояния.
Наиболее распространенным примером является банковский счет в качестве ресурса. Доступ к ресурсу (учетной записи) возвращает различную информацию об этом и ссылки на операции, которые могут быть выполнены на нем. И эти операции (следовательно, доступные ссылки) зависят от состояния учетной записи. Если у пользователя есть деньги, тогда ссылки могут быть {«депозит»: «депозит-url», «снять»: «снять-url»}. Когда у пользователя нет денег на счету, возвращаемые ссылки (доступные действия) могут быть {«депозит»: «депозит-url»}. Таким образом, список доступных операций/действий/ссылок изменяется и зависит от состояния ресурса.
Другим распространенным примером является наличие разных пунктов меню в зависимости от роли/разрешений пользователя. В приложениях, которые генерируют целую страницу на стороне сервера, вы можете создавать ссылки на разные действия в шаблоне страницы с помощью простых проверок: if (isAdmin (currentUser)) {} else {...}. Но при использовании служб REST большинство клиентов - это приложения JavaScript, где вы не можете выполнять какие-либо проверки разрешений. Таким образом, здесь HATEOAS помогает, возвращая действия меню (ссылки) в зависимости от роли/разрешения пользователя на стороне сервера и клиента REST, не нужно беспокоиться об этом.
Надеюсь, это поможет. Ура! :-)
Вы заглянули в источник данных для отдыха? Git: https://github.com/spring-projects/spring-data-rest. Руководство http://docs.spring.io/spring-data/rest/docs/2.3.0.RELEASE/reference/html/ –
Пример 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 –