`
whygod
  • 浏览: 1894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

从实际经验说说使用REST的感受

阅读更多
1. REST号称减少action,每个controller的action规定在4个。但实际应用时,需要action的数量要大于这个数,这么说来,就要增加更多的controller。

2. 有别的方法可以让controller多处理几个action,例如在表单里设置个隐藏字段,那么POST以后根据隐藏字段的值进行不同的处理。或者说在routes里用with_options多设置几个独立的action。

3. REST生成地址的函数,new/edit/XXX_path(),大家在用的时候会不会想到将来也许为了优化而要将它们都改成<a href...>,你们会不会也觉得有点不爽。

4. respond输出的format.xml, format.js,在一般的web网站开发中,基本不会被用到。虽然它们确实有用,但我看着自己项目里这些鸡肋代码,也不知是删了好还是留着好。

5. 举个实际的例子来说明吧,开发bbs里帖子相关的功能,有新建,保存,修改,删除,但除此之外,我们还有开发预览帖子,引用,收藏,分享,支持或反对等等action。当这些功能处于一个大系统里,你是怎么分配controller和action的呢?

很多人都说正解是:该用REST的部分用REST,其它的就按一般的controller/action来就行了。
是的,要说功能,最终肯定能做出来,但你看到最后写的代码,似乎啥都不像。你也会觉得有些不爽的。

在此抛砖引玉,各位达人有其它好的方式,请多多指教~~
分享到:
评论
7 楼 whygod 2008-09-01  
手上项目原先是基于从Rails1.23的版本,后来迁移到Rails2.1,需要改动的地方挺多的。项目不大不小,也没有做EdgeRails。
............

7thbyte兄说得好,受教了!!
6 楼 冉翔 2008-08-29  
LZ明显还不清楚REST的含义,建议继续学习,弄明白后再谈实际经验和感受
5 楼 lgn21st 2008-08-29  
友情提示,Beast已经升格为altered Beast,地址在
http://github.com/technoweenie/altered_beast/tree/master
4 楼 dave liu 2008-08-29  
REST不是关键,关键是它能带来好处。
REST也可以有许多action,不是就那几个。它是种风格。
3 楼 foxgst 2008-08-27  
楼主好像不是很清楚如何在Rails中REST。

貌似Robbin很早以前就说过,要站在面向资源的角度来考虑问题。
2 楼 7thbyte 2008-08-26  
whygod 写道
1. REST号称减少action,每个controller的action规定在4个。但实际应用时,需要action的数量要大于这个数,这么说来,就要增加更多的controller。

2. 有别的方法可以让controller多处理几个action,例如在表单里设置个隐藏字段,那么POST以后根据隐藏字段的值进行不同的处理。或者说在routes里用with_options多设置几个独立的action。

3. REST生成地址的函数,new/edit/XXX_path(),大家在用的时候会不会想到将来也许为了优化而要将它们都改成<a href...>,你们会不会也觉得有点不爽。

4. respond输出的format.xml, format.js,在一般的web网站开发中,基本不会被用到。虽然它们确实有用,但我看着自己项目里这些鸡肋代码,也不知是删了好还是留着好。

5. 举个实际的例子来说明吧,开发bbs里帖子相关的功能,有新建,保存,修改,删除,但除此之外,我们还有开发预览帖子,引用,收藏,分享,支持或反对等等action。当这些功能处于一个大系统里,你是怎么分配controller和action的呢?

很多人都说正解是:该用REST的部分用REST,其它的就按一般的controller/action来就行了。
是的,要说功能,最终肯定能做出来,但你看到最后写的代码,似乎啥都不像。你也会觉得有些不爽的。

在此抛砖引玉,各位达人有其它好的方式,请多多指教~~


1、默认的是7个action : index show new edit create update destroy,如果不够用,有两种情况,一是确实不够,二是对REST理解不够,资源划分得还不够清楚

2、处理多个action干什么?为什么不把有差异的方法写在model上。。controller越薄越好

3、没明白什么意思,具体说说?

4、这根本不构成一个问题。。。不用脚手架就不会自动生成这些代码。用不到删掉就行了,为什么要考虑留不留的问题。。事实上我不赞成脚手架,因为生成的代码很不安全。如果不修改,可能会被其他人获得数据库表上所有字段的信息。

5、以这个例子来说,如果要表示分享,反对等,应该抽象出“分享ITEM”“意见”等资源,为什么要全部在帖子资源上进行这些操作?

/users/1/shareitems/new 不是更简单易懂?


还是大家多实践、探讨比较好:)
1 楼 robbin 2008-08-26  
建议你去下载beast的代码好好看看。REST不是你这么用的。

http://svn.techno-weenie.net/projects/beast/

相关推荐

    REST实战(REST in Practice)

    REST实战(REST in Practice)。英文清晰PDF版。...你将会学习到很多技术,并且随着一家典型的公司从最初的小企业逐渐成长为全球化的企业,使用这些web技术和模式来解决这家公司在成长过程中产生的各种需求。

    Androidannotation使用Rest注解(一)

    Androidannotation使用之@Rest获取资源及用户登录验证

    REST_cn 中文版

    这篇论文定义了一个框架,致力于通过架构风格来...最后,我描述了从在超文本转移协议(HTTP)和统一资源标识符(URI)的标准中应用REST,以及从这两个标准在Web客户端和服务器软件的后续部署等过程中学到的经验教训。

    Kepware IOT gateway使用教程 - REST Sever

    Kepware中IOT gateway模块功能下REST Sever具体使用方法,过程很详细,有详细的图形指引,对研究Kepware和其他系统进行数据交互很有价值,希望对初入IOTKepware的朋友有很好的帮助

    Azure使用Rest访问存储服务的例子

    Azure使用Rest访问存储服务的例子,包括blob 队列 表。

    OpenDaylight REST API研究

    在实验中,我们使用 mininet 创建了一个 SDN 网络拓扑结构,并使用 Topology REST API 来访问和管理该拓扑结构。在实验中,我们首先创建了一个 SDN 网络拓扑结构,然后使用 Topology REST API 来检测拓扑结构,配置...

    rest url详解

    rest url详解 spring rest 使用 rest 配置

    REST服务示例入门

    2. 由于【1】的改动,使得只有以/rest开头的URL才能映射到某资源,使用rest服务时,必须要加上/rest。 3. 由于【1】的改动,RestComponent类注册application时将资源字符串加上了/rest。 4. 由于【1】的改动和本人...

    nodejs+websock+rest+rest调用

    基于nodejs的websocket平台,该平台包括异步的数据库调用,异步的rest api访问,以及能够提供rest api的服务。该平台能实现基于ws的聊天室,可以将聊天的信息调用rest api存储到数据库,可以通过网页访问该平台提供...

    activiti-rest

    activit-rest 官方文件官方文件官方文件官方文件官方文件官方文件

    使用Jersey框架搭建Rest服务

    使用Jersey框架搭建Rest服务

    使用Spring MVC创建REST服务简单例子

    使用Spring MVC创建REST服务简单例子

    sails-rest, 在 Sails.js 中,使用rest式API作为ORM适配器.zip

    sails-rest, 在 Sails.js 中,使用rest式API作为ORM适配器 rest 提供从 Sails.js &水线轻松访问 RESTful api的。MODULE 是一个水线/帆适配器,一个快速开发的工具,工具不可知的数据标准。 它的目标是提供一组声明性...

    使用CXF发布Rest服务

    本例子是通过CXF服务端来发布Rest服务,同时在客户端进行接收。本例子是自己学习CXF Rest时候写的,希望能给需求的人帮助.CXF的版本号为2.3.3,请自己下载CXF2.3.3的jar包.

    Vue+Django REST framework 打造生鲜电商项目.docx

    Vue 和 Django REST framework 是当前非常流行的前端和后端技术栈,本文档旨在指导读者使用 Vue 和 Django REST framework 联合开发一个完整的生鲜电商项目。 1. 项目概述 本项目的目标是使用 Vue 作为前端框架,...

    Rest Severs in Delphi XE Using DataSnap

    在Delphi中使用Rest Severs的pdf书籍和相关源码,是学习Delphi Rest架构的很好资料。

    Learning WordPress REST API

    Chapter 1, Getting Started with REST API, gives you an overview of what the REST API is, how it functions, and all that it is capable of doing. You will also find information about other platforms if ...

    cpprest实例工程

    cpprest实例工程,基础测试cpprest的使用,主要包括文件数据拉取

    iClient使用rest地图服务,图层控制

    此范例演示iClient for Android 打开rest地图服务后,进行图层显示的控制

    Android代码-RestHttp

    使用 初始化:设置日志TAG public class App extends Application { @Override public void onCreate() { super.onCreate(); RestHttp.initialize(this); RestHttp.setDiskCacheSize(100 * 1024 * 1024); ...

Global site tag (gtag.js) - Google Analytics