假設我的模型由一個Parent
實體組成,該實體通過children
屬性引用一些Child
實體。根據REST原則,特定Child
的URI的路徑段將爲/parent/{parentId}/children/{childId}
。URI中的REST父ID
當在Child
執行更新操作,通常childId
是我需要的,以便唯一識別正確Child
,認爲在路徑冗餘的parentId
段。隨着層次結構變得複雜,這種冗餘會加劇。
現在我想起來了,這也可能會導致意外的行爲:訪問的URI具有相同childId
但不同parentId
可能會導致相同的行爲,如果程序員不知道。在不相關的Parent
下訪問Child
時可能會發生什麼情況,應該返回客戶端錯誤代碼。
目前,我想,也許沒有等級應出臺REST API,除非它是絕對直觀的,因爲它:
- 使得URI - 因此API - 更復雜。 Hardens可維護性。
- 冗餘可能會導致用戶推斷訪問某些URI的結果。
- 冗餘可能會成爲不知道程序員的陷阱。
有沒有辦法避開這種冗餘,仍然符合REST原則?
REST是一套原則,而不是一個標準。 – gioele 2012-02-19 18:33:50
什麼是URI的「結果」? (有人使用任何類型的API希望能夠預測操作的結果,至少在基本水平上。) – 2012-02-19 18:44:07
@DonalFellows - 訪問URI的結果。我編輯了你的問題:)。問題是這種API不夠可預測。 – yair 2012-02-19 18:49:36