2015-09-25 129 views
1

的HAL规范链接HAL + JSON表示说:具有相同相对

注意:如果您不确定链路是否应为单数,假设它 将有多个。如果您选择单数,并且发现需要更改它,则需要创建新的链接关系或打破现有的 客户端。

作出是否与特定版本的链接单个或多个仅特定资源表示中适用于使用的是相对的,还是它适用于使用该版本的任何资源 - 表示?

例如,如果我已经确定在某个资源X内部rel的下方的链接总是应该是多个,那么这个约束是否仅适用于资源X,或者如果我碰巧在那里使用item以及?

回答

3

链接关系类型独立于资源表示进行定义。事实上,它们经常被独立定义为媒体类型,以便它们可以跨媒体类型使用。

另外要注意的链接关系“项目”已被定义和标准化见http://www.iana.org/assignments/link-relations/link-relations.xhtml

+0

我完全同意。自相矛盾应该与所使用的表示形式无关。但是我想知道HAL + JSON如何选择物理代表链接和rels的含义。如果最终形成一个rel的多个链接(最初只有一个链接),那么建议创建一个新的rel似乎意味着选择一个特定的物理表示可能需要以后创建一个*全新的*关系,不想破坏客户,*即使意思可能没有改变*。我的解释是否正确,或者我错过了什么? –

+0

@VivinPaliath在JSON中切换数组和对象是件痛苦的事情。最初的HAL规范是针对XML的,这在XML中不是问题,因为rel只是链接元素的一个属性。说实话,我从来没有注意到HAL规范中的那条线。这是合理的指导,尽管你使用的是JSON,不管是否由于对象/数组的问题而使用JSON。 –

+0

IMO看起来像HAL + JSON选择代表JSON链接的抽象泄漏;我认为不应该仅仅因为最初使用'{}'而不是'[]'来创建新的rel;关系的含义并没有改变,这不会像你所说的那样成为XML的问题。仅仅因为JSON问题,最终会导致多余的rels。这就是为什么我想知道是否在JSON + HAL的上下文中,rel可以总是以某种方式表示,或者如果它只适用于特定的资源表示。为了API一致性,我喜欢以前的选项。 –