2011-02-18 55 views
4

我有一篇文章和作者資源的REST系統。通常,在訪問文章時,我也想知道作者的姓名。我可以通過幾種方法制作文章來實現這一點:A)將作者姓名的副本直接嵌入到文章中;或B)在文章中包含一個URI,指向相應的作者資源。REST資源設計:嵌入相關數據VS鏈接到它?

將作者的姓名直接複製到文章資源中顯然是一個缺點。通過將信息複製到多個資源中,我打開了資源之間的衝突。在作者更新其名稱後,文章資源可能會有他們的舊名稱和作者資源會有新的名稱。

也許如果我不緩存文章這不會是一個問題?但作爲一個實際問題,快速並減少返回服務器的次數是非常可取的,因此緩存在瀏覽器中是我所追求的。

在場景B中,使用URI進行鏈接似乎是正確的,並且對緩存更友好。 但是這會使調用返回到服務器的數量增加一倍:每篇文章都需要對作者進行第二次(串行)提取。所以,用另一種方式很昂貴,特別是如果我們正在討論多個URI到多個其他資源。當一次顯示50篇文章時,這可能會變得瘋狂。

我想聽聽其他人解決這個問題的方式。是否有值得閱讀的「最佳實踐」散文?

回答

1

正在鏈接...將調用次數翻倍回服務器:每篇文章都需要對作者進行第二次(串行)提取。

REST包括緩存約束正是這個原因,「第二取」沒有在所有來進行如果數據已經坐在你的本地緩存(或可以請求只如果緩存是中介或服務器端,則使用部分網絡資源)。如果您的數據可以通過這種方式進行設計,您可以將整個網絡流量減少數量級。如果它不能,那麼應用REST架構風格就沒有意義了,REST架構風格取決於緩存的網絡效率 - 選擇不同的風格,比如RPC。