这是一个示例网址:
/users/123/comments
根据此 URL,哪个术语最适合描述users
?是users
资源还是资源的一部分。那部分的名称是什么?
同样的问题也适用于其他部分。哪些术语最能描述123
和comments
?
是否有一个术语可以指代 RESTful URL 的第二部分?它将描述123
in/users/123
和purchases
in /me/purchases
。
这是一个示例网址:
/users/123/comments
根据此 URL,哪个术语最适合描述users
?是users
资源还是资源的一部分。那部分的名称是什么?
同样的问题也适用于其他部分。哪些术语最能描述123
和comments
?
是否有一个术语可以指代 RESTful URL 的第二部分?它将描述123
in/users/123
和purchases
in /me/purchases
。
REST 是面向资源的。URL 代表资源。
在您的示例中,/users/123/comments
:
users
是一种资源。123
是用户的唯一标识符。/comments/{id}
)关于您的第二个问题, for 的格式/me/purchases
与/users/123
. 并且/me/purchases
可能是一个简短的 URL,例如用户的子资源/users/{myid}/purchases
在哪里(也可能是他们自己的资源,由 提供)。purchases
/purchases/{id}
有关更多信息,这里有一个视频,它与您的问题没有直接关系,但它制作得非常好,而且关于 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 空间,但这些是服务器的私有实现细节。
没有RESTFul url 这样的东西。该术语是框架设计师的虚构,只会让您感到困惑。