Я использую Spring Data REST, который поддерживает HATEOAS. Я новичок в этой парадигме.
В ответах GET моего веб-сервиса RESTful я часто получаю результаты внутри node с именем _embedded.
Мне интересно: что такое _embedded node для? Является ли он частью спецификации REST? Или часть спецификации HATEOAS? Или это специфично для их реализации Spring?
Это пример результата JSON для GET http://localhost:8080/mywebservice/features:
{
"_links":
{
"search": { "href": "http://localhost:8080/mywebservice/features/search" }
},
"_embedded":
{
"features":
[
{
"feature": "GROUND",
"name": "Terreno",
"data_type": "String",
"_links":
{
"self" : { "href": "http://localhost:8080/mywebservice/features/GROUND" },
"values": { "href": "http://localhost:8080/mywebservice/features/GROUND }
}
},
...
]
}
}
Я заметил, что в ответе почти всегда есть _embedded node: если я запрашиваю коллекцию, но даже если запрос одного ресурса выполняется поиском (например, с GET http://localhost:8080/mywebservice/persons/search/[email protected]@.com).
Я не получаю _embedded node, только если запрос предназначен для определенного ресурса, например, при выполнении GET http://localhost:8080/mywebservice/features/GROUND.