ran*_*its 6 ruby rest ruby-on-rails
我有点困难想出正确的答案,所以我会在这里征求我的问题.我正在研究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
Run Code Online (Sandbox Code Playgroud)
这将创建我正在寻找的两种类型的路线.
如果您的家庭记录只能属于一个街道,那么当您单独检查一个家庭时,这种关系不会混淆.无论出于何种原因,您仍然可以回溯到相关的街道记录.
在您拥有多对多关系的情况下,对REST结构进行解嵌可能会让您遇到麻烦.如果特定记录仅在特定上下文中有意义,并且您删除了该上下文,则显然存在混淆.
我认为在您的特定情况下,您可能不需要实现这两种方法,而是采用"更平坦"的方法来降低URL的复杂性.
| 归档时间: |
|
| 查看次数: |
766 次 |
| 最近记录: |