2014-01-26 49 views
2

在討論設計REST api時,開發人員之一告訴部分響應不是RESTful。 例如在返回/ forums/{forum_id} /用戶的響應時,我只是返回用戶名和頭像圖片。 當有人想要關於用戶的詳細信息時,我發送{年齡,地點,points_scored等等}。 雖然試圖使用餘燼數據對這個模型進行建模,但我們在https://github.com/emberjs/data/issues/51 中提到的問題中找到了問題。那時開發人員指出部分響應是針對RESTful設計的。但是我在任何REST書籍或互聯網上找不到任何此類信息。此外,我發現谷歌實際上在其RESTful API中使用了部分響應,並且有很多人使用它。部分響應未RESTful

所以我們想知道的是部分響應(如上所述)實際上不推薦用於RESTful服務或其僅僅是設計選擇問題。

回答

-1

與常見誤解相反,REST並不強制讀取和寫入相同的確切資源。

CouchDB是一個非常好的示例。它處理:

  • 「對象」(又名 「文檔」),可以是創建閱讀更新刪除
  • 和 「意見」,這是從計算文件,那隻能是請看

在你的情況下,/forums/01a0/users將是一個「視圖」,而/user/99a7將是一個「對象」。

+0

嗨Aurélien,你說的很好。但我想知道的是,如果我在API中返回資源的部分視圖(例如,僅返回一個Person的名稱),那麼我是否違反REST原則? – Rahul

+0

@Rahul在列出論壇用戶的「視圖」中,您肯定可以獲得關於每個用戶的部分信息(如姓名和頭像圖片)。 –

+0

什麼是痛苦(尤其是高速緩存),當您將來自其他資源的數據混合到可更新資源中時。只讀「視圖」會使問題更加簡單。 –