在RESTFUL风格中怎样定义需要多个参数才能确定的资源路径


有些资源只需要一个参数就能定位出来比如xxx.com/user/2就定位了id号为2的用户,但是有些资源需要两个或者两个以上的参数才能定位,该如何组织这种资源的URL比较好?
比如要表示x轴为2,y轴为3的点该用下列哪种URL比较好?
1. xxx.com/dot/2/3
2. xxx.com/dot?x=2&y=3
3. xxx.com/dot/2-3(or 2.3)
或者还有别的更好的方案?求指教

restful url

lonicol 12 years, 2 months ago

可以参照Rails中的标准的定义方式。
如果定义这个资源的两个参数具有从属关系,那么生成的路由就是

owner/1/property/1

其中property从属于owner。

比如用户1的编号为2的文章,就是 users/1/articles/2

如果两个资源是平等的,那么一般是作为路由中HTTP方法的参数,

比如你提到的“要表示x轴为2,y轴为3的点”,就一般是用 xxx.com/dot?x=2&y=3

213125 answered 12 years, 2 months ago

个人认为2更好。

restful 的url表示资源的逻辑地址,每个网址代表一种资源(resource)。x轴为2,y轴为3的点可以理解成对点的过滤,x=2和y=2都是过滤条件。

以上是个人观点,欢迎指正~

对于restful的理解及api设计可以参考 阮一峰 大神的blog:

http://www.ruanyifeng.com/blog/2011/09/restful.html
http://www.ruanyifeng.com/blog/2014/05/restful_api.html

妮可喵帕斯 answered 12 years, 2 months ago

Your Answer