【发布时间】:2014-09-07 11:25:42
【问题描述】:
我正在使用 Spring HATEOAS (0.16.0.RELEASE) 构建一个 Spring REST 应用程序,我希望 JSON 链接输出如下所示:
_links: {
self: {
href: "https://<ip>/api/policies/321"
}
}
虽然它呈现如下:
"links":
[{
"rel":"self",
"href":"http://<ip>/api/policies/321"
}]
我正在使用 HATEOAS Resource 和 ResourceAssembler。
为什么我得到的是这种格式而不是另一种?怎么改?
【问题讨论】:
-
我猜这取决于您用于构建 HAL 响应的序列化程序。它对 HAL 完全有效,因此一个好的 HAL 解析器可以使用它...
-
谢谢。你知道哈尔浏览器(haltalk.herokuapp.com/explorer/browser.html#)吗?它不适用于这种格式,所以我认为它可能不是有效的按书 HAL 格式。我错了吗?
-
我会检查一下,也许我对 HAL 规范的记忆不完善。
-
是的,你是对的,当我阅读你的代码时,我想我很着急。您的示例具有 collection+json 结构而不是 hal+json。所以我猜你使用了错误的类来生成 json 响应。通过 hal,您使用
_links和一个对象,其中键是链接关系,值可以是链接数组或单个链接。通过 collection+json 你使用links这是一个链接数组。 -
在此处阅读手册:github.com/spring-projects/spring-hateoas,这是 Spring HATEOAS 的纯 JSON 格式。 (它只是类似于collection+json,但乍一看我不认为它是。)我认为如果你想构建一个HAL响应,你必须使用不同的类或不同的设置。这些信息在手册的某处,但对我来说太长了,因为我不开发 java,如果我有时间做另一个爱好,也许是 android...
标签: spring rest spring-mvc spring-hateoas hal