有很多的討論,在那裏大約REST URI的設計,但沒有準確地回答了我的問題。REST URI設計的樹結構
比方說,我有一個包含任務和/或其他名單(名單=節點和任務=葉)某些列表。
我們可以有這樣的事
/lists/{id_list1}/lists/{id_list2}/lists/{id_list3}/tasks/{id_task1}
,或者一個較短的版本:
/lists/{id_list1}/{id_list2}/{id_list3}/{id_task1}
但是,我們真的很深的樹?
我還想着父/子關係,意思是說像
/lists/{id_list_parent}/{id_list_or_task_child}
,但我覺得有什麼地方丟失......
什麼將是REST URI樹木巧妙的設計?
編輯
對不起,我遲到的回答!
所以我想我是混合2只需要:API的URI和瀏覽器的URI。
以下是我看到的東西:
在API方面,我只有兩個寫這些URI和讀取方法(末尾的「/ ID」不是必需的,對於創建實例) :
/lists/id
/tasks/id
在我的瀏覽器不過,我有這樣的事情:
/lists/id/lists/id/tasks/
只有第一部分(/列表/ ID)將由服務器,第二部分(名單進行解釋/ id/tasks /)wi我的客戶端JavaScript將使用它來查找從服務器收到的列表的子列表的任務。
你覺得這個辦法是什麼,也覺得事情錯了嗎?
查看Git Hub上的url https://github.com/twitter/bootstrap/tree/master/docs/templates文件夾是節點,文件是葉子。我認爲它運作良好! –
URI不是REST API的一部分。 REST是關於內容的,而不是URI。這應該讓您可以自由選擇一個URI組織,並在稍後進行更改。無論如何:你爲什麼需要/列表/ {id_list1} /列表/ {id_list2} /列表/ {id_list3} /任務/ {id_task1}?這看起來會導致帶有id 3的任務,因此無法將此任務縮減爲/ lists/{id_list3}/tasks以獲取任務列表,並且/ tasks/{id_task1}可用於列表中的任務? – jmclem
感謝您的回覆,但我的問題並不確切,請參閱我上面的修改。 – greg3z