下面是一个例子网址:描述REST风格的URL
/users/123/comments
在此基础上的网址,其中任期将最好的形容users
?是users
的资源还是它的一部分资源。那部分的名字是什么?
对于其他部分也是同样的问题。哪些术语最能描述123
和comments
?
是否有一个术语会引用RESTful URL的第二部分?它将描述/users/123
中的123
和/me/purchases
中的purchases
。
下面是一个例子网址:描述REST风格的URL
/users/123/comments
在此基础上的网址,其中任期将最好的形容users
?是users
的资源还是它的一部分资源。那部分的名字是什么?
对于其他部分也是同样的问题。哪些术语最能描述123
和comments
?
是否有一个术语会引用RESTful URL的第二部分?它将描述/users/123
中的123
和/me/purchases
中的purchases
。
REST是一个面向资源的。网址代表资源。
在你的榜样,/users/123/comments
:
users
是一种资源。123
是用户的唯一标识符。/comments/{id}
)关于你的第二个问题,为/me/purchases
格式是不与/users/123
相同。而/me/purchases
可能是类似的东西/users/{myid}/purchases
短网址,其中purchases
网友(也可能是一个由/purchases/{id}
上也是自己的,可用的资源)的子资源。
欲了解更多信息,here is a video,不直接关系到你的问题,但是这是很有见地的约REST Web服务非常有趣。
在您的示例中,http://example.org/users/123/comments
指向一个资源。完整的URI是资源的标识符。
让我给你举一个极端的例子,
/users/123/comments.xml
/users/123/comments.json
是两个不同的资源。
查询字符串还确定了资源,所以
/users/123/comments?format=xml
/users/123/comments?format=json
也有两个不同的资源。
资源不映射到实体。资源是您希望通过HTTP公开的“一些概念”,并且已经通过URI进行标识。
在RESTful系统中URI是不透明的制度设计。你系统的客户端不应该试图从你的URI部分推断出你的意思。一台服务器可以设置规范,以帮助它建立一个URI空间,但这些服务器的私有实现细节。
有为REST URL没有这样的事情。这个术语是一个框架设计师的作品,只会让你迷惑。
我不同意'format = xml'格式= json' format = html'指向不同的资源。他们指向相同的资源,但指向该资源的不同表示。我可能是错的,但这是我以前见过的 –
@HugoDozois这里http://tech.groups.yahoo.com/group/rest-discuss/message/11147是Roy Fielding从2008年开始的一篇文章,他描述两个URI只通过“扩展名”与“特定于格式的**资源**”不同 –