繁体   English   中英

Ruby on Rails URL中的资源映射(RESTful API)

[英]Resource mapping in a Ruby on Rails URL (RESTful API)

我有点困难想出正确的答案,所以我会在这里征求我的问题。 我正在研究RESTFul API。 当然,我有多个资源,其中一些资源包括父母与子女之间的关系,其中一些资源是独立的资源。 我遇到一些困难的地方在于弄清楚如何让那些将根据我的API构建客户的人们更容易。

情况就是这样。 假设我有'街头'资源。 每条街都有多个房屋。 So Street:has_many to Homes and Homes:belongs_to Street。 如果用户想要在特定的主资源上请求HTTP GET,则以下内容应该有效:

http://mymap/streets/5/homes/10

这允许用户获得id为10的家的信息。直接前进。 我的问题是,我是否通过授予用户访问权限来违反本书的规则:

http://mymap/homes/10

从技术上讲,家庭资源本身就没有街道。 有意义的是,它存在于没有封装街道的自己的实体中,即使业务逻辑另有说法。

处理这个问题的最佳方法是什么?

编辑! 为了成为一名优秀的StackOverflow公民,我回过头来看一下如何在上面实现它们的支持代码块。

map.resources :streets,
              :has_many => :homes
              :shallow => true

这将创建我正在寻找的两种类型的路线。

如果您的家庭记录只能属于一个街道,那么当您单独检查一个家庭时,这种关系不会混淆。 无论出于何种原因,您仍然可以回溯到相关的街道记录。

在您拥有多对多关系的情况下,对REST结构进行解嵌可能会让您遇到麻烦。 如果特定记录仅在特定上下文中有意义,并且您删除了该上下文,则显然存在混淆。

我认为在您的特定情况下,您可能不需要实现这两种方法,而是采用“更平坦”的方法来降低URL的复杂性。

不,这是浅薄的路线工作和使用很多。

我真的很喜欢这种方法。 我建议你阅读它。 简而言之,本文说您不应该将资源嵌套到1级以上。 如果嵌套资源有可能被浅化,那就去做吧。

在我的一个应用程序中,我真的用嵌套资源搞砸了。 我甚至走到3或4深,这成了一场噩梦......

如果让事情变得简单,嵌套真的很棒。 如果没有,请放弃!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM