1

这是一个示例网址:

/users/123/comments

根据此 URL,哪个术语最适合描述users?是users资源还是资源的一部分。那部分的名称是什么?

同样的问题也适用于其他部分。哪些术语最能描述123comments

是否有一个术语可以指代 RESTful URL 的第二部分?它将描述123in/users/123purchasesin /me/purchases

4

2 回答 2

0

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 服务非常有趣。

于 2013-05-21T13:37:08.163 回答
0

在您的示例中,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 这样的东西。该术语是框架设计师的虚构,只会让您感到困惑。

于 2013-05-21T17:02:00.480 回答