2010-03-23 55 views
1

假設我們想要一個RESTful Web服務來管理一些邏輯上嵌套的資源,其中資源'B'的每個實例在邏輯上由資源'A'的一個實例包含。 想到的第一個例子是作爲系統管理員使用的電子郵件帳戶及其域名:[email protected] [email protected] [email protected] ...對於RESTful應用程序中的「嵌套」資源,哪種URL方案更好?

您建議使用哪種URL方案?起初我會嘗試:

/domain/[domainname] 
/domain/[domainname]/account/[accountname] 

是否符合RESTful原則?或者我應該去與類似的東西:

/domain/[domainname] 
/account/[[email protected]]/ 

或其他什麼?

回答

3

問題是「導航」和「獨立」之一。

一個帳戶是否有含義外部一個特定的域?通常它不是。所以這個賬戶並沒有真正的單獨的頂級路徑。

但是,在URI中間使用帶有標籤的/domain/[domainname]/account/[accountname]也不太好看。 「域名」和「賬戶」這兩個詞不是很有用。

你的東西更幸福這樣的:

/domain/[domainname]/ -- general information about the domain 
/account/[domainname]/[account]/ -- a specific account within the domain. 

路徑的頂部是那種數據的分類。

其餘路徑是導航到該數據段的方式。