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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – RESTful设计,如何命名CRUD等外的页面?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个有相当多的页面的网站上工作,这个网站不在我对RESTful设计的有限理解之外,其实质上是:
Create,Read,Update,Delete,Show,List

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

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

非常感谢. =)

解决方法

我当然不是专家,但是如果您重新考虑资源,并将其更严格地认为是“名词”或至少是数据列表,则可能更容易将任何所需的操作适用于GET,POST,PUT和DELETE.例如,您有一个/ customers / resource可以推测,每个客户都有一个/ customers / {username} /资源.也许这给了他们自己的信息.您可以拥有/ homebases / {username} /或/ customers / {username} / homebase /作为您的主库资源.大概您可以通过GET访问该主库资源,如果有任何东西可以更新(POST),那么我们不会期望在家庭基础或仪表板上,因为它是一个汇总资源).

对于’匹配’,你可以使用/ match / {customer},{company} /(是的,逗号和分号是允许的,逗号通常意味着这两个部分是依赖于顺序的,分号意味着无关的顺序,尽管没有规则关于它).从该资源,您可以让GET读取,显示和列出所需的任何数据(包括作为GET请求的正文传递的可选查询参数),POST更新,PUT创建和DELETE删除.使用GET中传递的参数,您还可以请求相同数据的不同视图.当然,您可以拥有与/ matchings / {customer},{company} / invoices / {invoice#} /匹配的子资源.

我喜欢这本书“RESTful Web Services”(2007 O’Reilly).

我希望这样做有所帮助. =)

猜你在找的Ruby相关文章