我一直想知道在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
資源只能返回關於本書的信息(沒有其他),並且獲得其他任何內容,您必須訪問其他資源。
爲了一致起見,這是有道理的。雖然,如果我正在爲此xml數據編寫客戶端應用程序,我會對額外的步驟感到沮喪。在他最初的例子中,我必須首先訪問本書,然後訪問關係,然後作者訪問任何給定書籍的作者姓名。我想這實際上取決於客戶的需求。 – demersus