我正在设计一个REST api并且尽可能地休息,我想将HATEOAS实现为json响应。
如果数据库中没有链接的实体,例如每个用户都有一个护照实体,但如果有人没有,那么我想发送一组rel和href链接:
{
"links": [
{
"rel": "drivingLicence",
"href": "http://localhost:9090/api/v1/drivingLicence/6"
},
{
"rel": "passport",
"href": null
},
{
"rel": "self",
"href": "http://localhost:9090/api/v1/user/4028818347818fd80147819111d60001"
}
],
"userId": "4028818347818fd80147819111d60001",
"userName": "username",
"fullName": "Some User",
"activeFlag": "ACTIVE",
"createTimestamp": 1406628074000,
"updateTimestamp": 1505697126548
}
有没有办法使用Spring HATEOAS实现这一点或手动我必须检查null然后将href设置为null。
答案 0 :(得分:1)
使用内置的Link类无法做到这一点,因为它不会让href为null或为空(检查构造函数)。也许你可以从Link派生并传入非空的href,但是覆盖getHref以返回null。
FWIW:我从未见过将href视为空策略。我已经看到有链接,如果它返回404那么这意味着它不存在&只是没有链接。作为一个超媒体客户端,我真的很惊讶看到href为null ...但这是一个新的实践一直在发生的新领域。