我刚刚开始关注REST,并想知道两种表示之间的基本区别是什么。第一个看起来对我很好,第二个必须传递一些属性值,但基础逻辑似乎沸腾到几乎相同的事情(虽然我可能会弄错)
http://url/category/category_id/item_id
和
http://url/category?category_id={12}&item_id={12334}
答案 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服务和客户的好例子......]