2010-12-20 56 views
1

我有两个RESTful API设计问题。假设我有一个水果站Web应用程序。我想回到所有我随身携带的水果和计数的水果信息,和我一起做:RESTful网址是否在对象之间没有ID的情况下有效?

http://myfruitstand.com/fruits 

问题1: 如果我有10个橙子,那么我想,我可以获得关于与特定的橙色信息:

http://myfruitstand.com/fruits/oranges/3 

不过是上面的网址REST风格的 - 不要我需要“果实”和“桔子”之间的ID,以符合REST标准?或者是这个带有'fruits'的网址紧跟着子类'oranges'好吗?

问题2: 同样,如果我想对我的橘子的论坛(不特定的橙色),我可以把它放在这里:

http://myfruitstand.com/fruits/oranges/comments 

同样是上面的URL的RESTful因为'oranges'和'comments'之间没有id(当然这里的id是暗示关于特定橙色的讨论,我不想这么做)?在这里,没有任何子类理性的'桔子'后面紧跟着'评论'。

由于事先查

回答

0

是因为它们是确定性的所有URL宁静长。 Restful更多的是关于你正在使用的http方法(例如DELETE删除,POST编辑,GET读取,...)。

0
  1. 我不相信你的使用说明,你需要一个水果资源的ID。
  2. 同样没有第二个需要的id。

只要你的网站建模你的对象组织,那么我相信你很好去。另外,我个人的感觉是,如果您发现一个案例,您需要稍微离开任何规范以满足您的应用需求,那么这是一个合理的做法。不要让坚持这种'模式'干扰完成工作。例如,在RESTful上下文中,有时您会执行与DELETE/PUT/POST/GET动词下的某些对象相关的操作。为了保持完美的RESTfulness,你把那些东西放进那里?

我现在躲在我的办公桌后面,以免被REST风格的大师/宗教家,将不可避免地给我打了现在:)被砸晕

+0

谢谢,我不会告诉极端分子在其下隐藏:-) – 2010-12-20 17:30:17

1

这将是更多的REST风格的资源收集,构建/ id对,例如/水果/:ID1 /项目/:ID2,其中ID1 =橙,ID2 = 3

/fruits/orange/items/3 

然后,如果你失去了“S”的橙子,因为你是在回答第二个问题,也将是正确的将橙色视为资源的一个实例,而不是资源集合。

/fruits/orange/comments 

例如幻灯片48 of http://www.slideshare.net/Wombert/phpnw10-designing-http-services-and-restful-interfaces

+0

办公桌所以我想这是$ 64个问题 - 是否将橙色视为资源或类型。 Arghhh ....我已经在多个方面遇到了这个问题,并且在通过REST公开我的模型时似乎遇到了问题...谢谢,Andy – 2010-12-20 15:15:01

+0

我会看到它的方式是,如果有资源与一个实体,它是一个父资源的一个项目,而不是一个集合。我只是更新措辞,以减少我的意思。 – Andy 2010-12-20 15:20:31

1

刚才一直在问自己有关REST风格的问题。但我认为这是:

如果是水果店,是不是'水果'的暗示?如何简单地说:

/橙/ {ID}

或者:

/水果/(编号)

这仅仅是类型橙色的水果。

/水果?类型=橙色可以返回你橘子名单的意见

相关问题