2010-03-23 71 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. 

路径的顶部是那种数据的分类。

其余路径是导航到该数据段的方式。