gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:57 24 4
gpt4 key购买 nike

我很难给出正确的答案,所以我会在这里征求我的问题。我正在研究 RESTFul API。自然地,我有多种资源,其中一些由父子关系组成,一些是独立资源。我有点困难的地方是弄清楚如何让那些将根据我的 API 构建客户端的人更容易。

情况是这样的。假设我有一个“街道”资源。每条街道都有多个住宅。 So Street :has_many to Homes 和 Homes :belongs_to Street。如果用户想要在特定的 home 资源上请求 HTTP GET,以下应该可行:

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

这允许用户获取 ID 为 10 的房屋的信息。直截了当。我的问题是,我授予用户访问权限是否违反了本书的规则:

http://mymap/homes/10

从技术上讲,家庭资源独立存在,没有街道。它感觉它作为自己的实体存在而没有封装街道,即使业务逻辑另有说明。

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

EDIT! In spirit of becoming a good StackOverflow citizen, I've come back with a supported code block for how to implement they above.

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

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

最佳答案

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

在存在多对多关系的情况下,解除 REST 结构的嵌套会给您带来麻烦。如果特定记录仅在特定上下文中有意义,而您删除该上下文,显然会造成混淆。

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

关于ruby-on-rails - Ruby on Rails URL 中的资源映射(RESTful API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2615350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com