Я пытаюсь построить архитектуру сервисов RESTful и сервис шлюза для всех них с помощью Java Spring.Чтобы сделать последнее, мне нужно реализовать клиент для других сервисов, которые я и мои коллеги пытались спроектировать вокруг принципа HATEOAS, предоставляя ссылки на связанные ресурсы через модуль spring-hateoas.
Давайтескажем, у меня есть служба, работающая на локальном хосте, прослушивающая порт 8080, которая возвращает набор ресурсов с операцией GET на /resources
.Например:
{
"_embedded" : {
"resources" : [ {
"label" : "My first resource!",
"resourceId" : 3,
"_links" : {
"self" : {
"href" : "http://localhost:8080/resources/3"
},
"meals" : {
"href" : "http://localhost:8080/resources",
"templated" : true
}
}
}, {
"label" : "Another resource!",
"resourceId" : 4,
"_links" : {
"self" : {
"href" : "http://localhost:8080/resources/4"
},
"meals" : {
"href" : "http://localhost:8080/resources",
"templated" : true
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:8080/resources",
"templated" : true
}
}
}
Я пытаюсь использовать клиент HATEOAS, такой как Traverson.Как я могу следить за элементом ресурса, просто переходя по ссылкам HATEOAS?До сих пор я решил добавить в мою коллекцию ссылку на item
, такую как:
"_links" : {
"self" : {
"href" : "http://localhost:8080/resources",
"templated" : true
},
"item" : {
"href" : "http://localhost:8080/resources/{id}",
"templated" : true
}
}
Итак, я могу заменить идентификатор непосредственно в шаблоне на Traverson и следить за результатом.Но это хорошая практика?Должен ли я пойти другим путем?