当链接实体为null时,Spring HATEOAS设置href null

时间:2014-07-30 09:22:57

标签: rest spring-hateoas

我正在设计一个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。

1 个答案:

答案 0 :(得分:1)

使用内置的Link类无法做到这一点,因为它不会让href为null或为空(检查构造函数)。也许你可以从Link派生并传入非空的href,但是覆盖getHref以返回null。

FWIW:我从未见过将href视为空策略。我已经看到有链接,如果它返回404那么这意味着它不存在&只是没有链接。作为一个超媒体客户端,我真的很惊讶看到href为null ...但这是一个新的实践一直在发生的新领域。