在REST中category / category_id / item_id和category?category_id = {}& item_id = {}之间有什么区别?

时间:2009-11-22 01:23:58

标签: rest representation restful-url

我刚刚开始关注REST,并想知道两种表示之间的基本区别是什么。第一个看起来对我很好,第二个必须传递一些属性值,但基础逻辑似乎沸腾到几乎相同的事情(虽然我可能会弄错)

http://url/category/category_id/item_id

http://url/category?category_id={12}&item_id={12334}

3 个答案:

答案 0 :(得分:1)

代理商应该可以推断资源结构:

  • 基于网址和
  • 基于资源请求返回的链接。

第二种表示的问题在于它可以被认为是一组无序的键和值,没有真正的结构/层次。

答案 1 :(得分:1)

如果您点击代码restful-url中的按钮,您会从此网站获得一个很好的链接,说明这两种风格之间的区别:

How to obtain REST resource with different finder "methods"?

答案 2 :(得分:1)

我认为你正在根据对REST的一些基本误解而努力。

用于访问资源的URL确实是一个细节,实际上对客户端无关紧要。如果客户端遵循作为REST原则之一的HATEAOS原则,那么客户应该真正“发现”这些URL。

基本上你是对的:任何一个URL 都可以代表你最后公开的资源,但正如我所说,这真的是一个细节,它归结为偏好在许多情况下是什么您公开的URL。 HATEOAS的目的是允许您更改用于随意访问资源的URL,而不会影响对您的现有服务起作用的客户端。

以下URL可能有助于您了解使服务真正成为RESTful的一些属性:

[免责声明:因为HATEAOS是REST的原则并不容易。你会发现网上的大多数服务都没有完全遵循这个原则,正如他们的文档充满了URL模板所证明的那样;而不是在理想世界中应该记录服务的方式。我正在努力寻找真正RESTful服务和客户的好例子......]