Java 如何使用Spring HATEOAS在链接部分中生成链接集合
我正在尝试生成类似以下示例的JSON输出:Java 如何使用Spring HATEOAS在链接部分中生成链接集合,java,json,spring-hateoas,Java,Json,Spring Hateoas,我正在尝试生成类似以下示例的JSON输出: { "links": { "self": { "href": "http://api.com/items" }, "item": [ { "href": "http://api.com/items/1" }, { "href": "http://api.com/items/2" } ] "data": [ {"item
{
"links": {
"self": { "href": "http://api.com/items" },
"item": [
{ "href": "http://api.com/items/1" },
{ "href": "http://api.com/items/2" }
]
"data": [
{"itemName":"a"},
{"itemName":"b"}
]
}
请注意,项
是链接对象的集合。我该怎么做呢
更新:
将相同的rel多次添加到myUserResource
会提供以下信息:
"links": [
{
"rel": "self",
"href": "http://localhost:8080/sophia/users/admin"
},
{
"rel": "item",
"href": "http://localhost:8080/sophia/companies/01393048000170/item/1"
},
{
"rel": "item",
"href": "http://localhost:8080/sophia/companies/01393048000170/item/2"
},
{
"rel": "item",
"href": "http://localhost:8080/sophia/companies/01393048000170/item/3"
}
]
只需添加多个链接与非常相同的rel
Resource resource = new Resource(data);
resource.add(new Link("…", "item"));
resource.add(new Link("…", "item"));
您希望获得的资源似乎是HAL+JSON系列格式,尽管您说的是“链接”,而不是“链接”。您得到的是默认的Spring HATEOAS。您需要使用@EnableHypermedia(HAL)。此外,您的Accept头中应该有application/hal+json,并且可能会生成@RequestMapping属性的参数。谢谢您的回复。这个结构将只在资源上工作?我有一个
UserResource
类,它扩展了ResourceSupport,并且使用相同的rel添加了多个链接并没有给我一个rel的集合。不,扩展ResourceSupport
的一切都会起作用。我刚刚使用了资源
作为常用示例。重要的一行是2-3。