我一直想知道 REST 中的链接能走多远。考虑有作者的书籍,但书籍和作者之间显然存在多对多的关系(一本书可以由多个作者写,作者可以写多本书)。
因此,假设我们有一个 rest 调用http://server/book/21
,它将返回一本书 XML,其中包含有关作者的信息。现在,既然书是一种资源,而作者是一种资源,那么 XML 不应该直接包含所有作者信息。它应该包含指向作者信息的链接。但是下面两个例子中哪一个更被广泛接受?
(请原谅我糟糕的格式化 XML,我对手写 XML 的经验并不丰富)
<book>
<title>Some Book</title>
<authors>
<author link="http://server/author/82">Some Guy</author>
<author link="http://server/author/51">Some Other Guy</author>
</authors>
</book>
然后,作者链接将返回更多信息:
<author>
<name>Some Guy</name>
<dateOfBirth>some time</dateOfBirth>
</author>
或者:
<book>
<title>Some Book</title>
<authors>http://server/book/21/authors</authors>
</book>
哪里http://server/book/21/authors
返回:
<authors>
<author link="http://server/author/82">Some Guy</author>
<author link="http://server/author/51">Some Other Guy</author>
</authors>
然后每个都再次返回前一个<author>
示例。
我问的原因基本上是因为在我的工作中他们采用了第二种方法,在我看来,客户必须采取更多步骤才能到达他们想去的地方。此外,对于“您总是需要”(作者姓名)的基本信息,您必须采取额外的步骤。另一方面,这种方式book
资源只返回关于这本书的信息(没有其他信息),而要获取其他信息,您必须访问其他资源。