2

我正在实现一个 hal/json api。

根对象(士兵)有一个相关对象(剑),映射在/soldier/{object_id}/sword

{
  "id": 12345,
  "name": "Sir SmokeALot",
  "_links": {
    "self": {
      "href": "http://soldier.local:8080/soldier/12345"
    },
    "sword": {
      "href": "http://soldier.local:8080/soldier/12345/sword"
    }
  }
}

但并不是每个士兵都有一把剑。想象一下没有剑的可怜士兵。

  1. 如果我检索soldier-object,链接应该/soldier/{object_id}/sword出现在-array 中_links吗?

  2. 如果应该,我会从这个链接中得到什么?空对象还是 404?hal/json RFC 是否允许在_links-array 中包含导致 404 的链接?

我不问如何解决这个问题,我想知道什么是对的

4

1 回答 1

1

理想情况下,如果士兵没有剑(如果计算成本不高),我认为您甚至不会发布链接。在我看来,返回 HttpStatusCode 404 没有任何解释的余地​​,这与“空对象”(无论是什么)不同。我也没有看到导致 404 的链接有任何问题,但提议的规范草案可能会被解释为其他方式(RFC 5988似乎也有这方面的信息)。

我认为您不会在 RESTful HAL 领域找到非常严格、强制执行的规则,更像是指南,很少有对与错、黑色或白色,更像是灰色阴影 - 只需找出适合您的方法,然后为您的客户建立明确的合同。

于 2016-11-11T07:45:01.320 回答