我目前正在設計一個RESTful接口到現有的基礎設施,我正在努力與一個特定的方面。正確RESTful呼叫此資源
我們有用戶的集合,可以在/users
訪問和該集合的元素可以在/users/1
等
訪問但是每個用戶都有的朋友列表,它需要能夠訪問爲好。 users/1/friends
是在這裏做的寧靜的電話嗎?由於只涉及一個用戶,因此它不符合自己的集合。
任何幫助,將不勝感激
我目前正在設計一個RESTful接口到現有的基礎設施,我正在努力與一個特定的方面。正確RESTful呼叫此資源
我們有用戶的集合,可以在/users
訪問和該集合的元素可以在/users/1
等
訪問但是每個用戶都有的朋友列表,它需要能夠訪問爲好。 users/1/friends
是在這裏做的寧靜的電話嗎?由於只涉及一個用戶,因此它不符合自己的集合。
任何幫助,將不勝感激
就RESTful設計而言,URI可以是任何你想要的。但是,爲了確保你的界面可以在REST的訪問,你需要做這樣的事情:
<user>
<name>Bob Smith</name>
<link rel="friends" href="/peeps/1/amigos" />
</user>
通過增加間接的額外層,客戶端可以發現鏈接,好友列表,並沒有更重要的是客戶端的URI是什麼。只要你喜歡,你可以改變它。
URIs是服務器的實現細節,客戶端不應該與它們耦合。唯一的耦合應該在rels和媒體類型上。
我想說/user/{id}/friends
是一個適當的標識符。當然,您也可以使用/users/{id}/friends
,但我個人更喜歡區分項目資源和收集資源。
我沒有看到你的解決方案看到任何問題。作爲它代表的URI的完美選擇。
我不同意URIs只是一個實現細節,因爲它們實際上是識別你的資源。一個好的RESTful設計應該考慮到這一點,以提高含義和語義。 – 2011-02-09 23:40:39