2009-09-18 57 views
2

我試圖弄清楚什麼是顯示不是集合(組)的成員(用戶)列表的最佳方式。不在集合中的成員列表的RESTful路由

/users 

是我列出所有的用戶帳戶中的路線

/group/:id/members 

是我列出了所有用戶的組路線

/users?not_in_group=:id 

是我對當前選項顯示不在該組中的用戶列表。有更多的RESTFul方式來顯示這個?

/group/:id/non_members 

似乎有點古怪......

回答

2

可以使用查詢參數或路徑來獲取所需的表示形式。但我會遵循皮特的建議,並確保你的API是hypertext-driven。不這樣做會引入REST旨在防止的客戶端和服務器之間的耦合。

您的問題的最佳答案可能取決於您的應用程序。例如,如果您的系統足夠小,則僅支持由用戶列表和他們各自的組(在/用戶處找到的資源)組成的表示就足夠了。然後讓客戶理清他們想要的信息。如果您的系統擁有大量組和許多用戶,而每個用戶只屬於幾個組,則任何組的available_users表示可能僅比整個用戶列表略小。

Creative design of media types可以走很長的路要解決這樣的問題。

+1

你的第二個RTF鏈接的關鍵引用:「如果一個視圖不適合你的需求,那麼隨意創建一個不同的資源,提供更好的視圖(對於」更好「的任何定義)......它只是需要讓收件人可以理解(並可以採取行動)。「 – 2009-09-18 16:34:57

0

輪輻與我的夥伴。他建議:

/group/:id/available_members 

看起來更積極。

0

REST的主要規則是「超文本作爲應用程序狀態的引擎」。 URI的形式是無關緊要的,重要的是它可以從應用程序入口處返回的表示形式導航。