gpt4 book ai didi

ruby-on-rails - RESTful 设计,如何命名 CRUD 之外的页面等?

转载 作者:行者123 更新时间:2023-12-03 22:32:08 25 4
gpt4 key购买 nike

我在一个网站上工作,该网站有很多页面超出了我对 RESTful 设计的有限理解,本质上是:

Create, Read, Update, Delete, Show, List

这里的问题是:当页面没有整齐地落入 CRUD/show/list 时,什么是标记操作/路由的好系统?我的一些页面同时包含多个表的信息。我正在建立一个网站,在他们登录后为一些客户提供一个“大本营”。它不会给他们任何关于他们自己的信息,所以它不应该是,例如,/customers/show/1。它确实有关于公司的信息,但网站上还有其他页面以不同的方式这样做。当你遇到这些情况时,你会怎么做?这个“家庭基地”向客户展示,它主要有关于公司的信息(但不是唯一的)。

第二种情况:我在客户和公司之间有一个名为“匹配”的表。这些匹配在网站的不同部分以完全不同的方式访问(不同的布局、不同的 CSS 表、访问它们的不同类型的用户等。它们不能都是匹配/显示。标记其他的最好方法是什么?

非常感谢。 =)

最佳答案

我当然不是专家,但如果您重新考虑您的资源并将它们更严格地视为“名词”或至少是数据列表,那么将任何所需的操作放入 GET、POST、PUT 和 DELETE 中可能会更容易。例如,您有一个 /customers/资源可能有一个 /customers/{username}/每个客户的资源。也许这给了他们关于他们自己的信息。你可以有 /homebases/{username}//customers/{username}/homebase/作为您的基地资源。据推测,您将主要通过 GET 和 POST 访问该 homebase 资源,如果有任何需要更新的话(我不希望在 home-base 或仪表板上这样做,因为它是一个聚合资源)。

对于“匹配”,您可以使用类似 /matchings/{customer},{company}/ 的内容(是的,逗号和分号是允许的。逗号通常意味着这两个部分是顺序相关的,分号意味着顺序无关,尽管没有关于它的规则)。从该资源中,您可以使用 GET 来读取、显示和列出您需要的任何数据(包括作为 GET 请求正文传递的可选查询参数)、使用 POST 进行更新、使用 PUT 创建以及使用 DELETE 进行删除。使用 GET 中传递的参数,您还可以请求相同数据的不同 View 。当然,您可以拥有该匹配的子资源,例如 /matchings/{customer},{company}/invoices/{invoice#}/ .

顺便说一下,我喜欢“RESTful Web 服务”(2007 O'Reilly)这本书。

我希望这有一定道理并且有帮助。 =)

关于ruby-on-rails - RESTful 设计,如何命名 CRUD 之外的页面等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2863775/

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