Я использую 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
.