0

我正在设计一个 REST api,并尽可能地保持安静,我想在 json 响应中实现 HATEOAS。

如果数据库中不存在链接的实体,例如每个用户都有一个护照实体,但如果有人没有,那么我想发送一组 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。

4

1 回答 1

1

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

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

于 2014-08-04T22:04:08.110 回答