论坛首页 编程语言技术论坛

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

浏览 3095 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-08-26  
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来就行了。
是的,要说功能,最终肯定能做出来,但你看到最后写的代码,似乎啥都不像。你也会觉得有些不爽的。

在此抛砖引玉,各位达人有其它好的方式,请多多指教~~
   发表时间:2008-08-26  
建议你去下载beast的代码好好看看。REST不是你这么用的。

http://svn.techno-weenie.net/projects/beast/
0 请登录后投票
   发表时间: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 不是更简单易懂?


还是大家多实践、探讨比较好:)
0 请登录后投票
   发表时间:2008-08-27  
楼主好像不是很清楚如何在Rails中REST。

貌似Robbin很早以前就说过,要站在面向资源的角度来考虑问题。
0 请登录后投票
   发表时间:2008-08-29  
REST不是关键,关键是它能带来好处。
REST也可以有许多action,不是就那几个。它是种风格。
0 请登录后投票
   发表时间:2008-08-29  
友情提示,Beast已经升格为altered Beast,地址在
http://github.com/technoweenie/altered_beast/tree/master
0 请登录后投票
   发表时间:2008-08-29  
LZ明显还不清楚REST的含义,建议继续学习,弄明白后再谈实际经验和感受
0 请登录后投票
   发表时间:2008-09-01  
手上项目原先是基于从Rails1.23的版本,后来迁移到Rails2.1,需要改动的地方挺多的。项目不大不小,也没有做EdgeRails。
............

7thbyte兄说得好,受教了!!
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics