`
qiezi
  • 浏览: 492357 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

我对Rails 1.2中 Restful的理解

    博客分类:
  • Ruby
阅读更多
讨论:

我总觉得REST应该用于提供数据而不是页面,还是用用户和圈子作例子吧,感觉顺畅一些。

比如某个用户的页面,他选一个圈子,点击“加入”就加入了这个圈子;而圈子的管理员也可以选择用户,并点击“添加”把用户加入圈子。

这里2个页面完成的是同一个操作,都是创建一个用户-圈子的关系,但操作完以后的页面转向会不同。如果用REST来提供页面,如何来处理这些转向?另加参数?那不是搞复杂了嘛。

所以我觉得应该是浏览器上通过AJAX请求这个action,返回数据,浏览器脚本把数据处理成显示,这也是AJAX最适合的方式。

如果只提供数据,实际上不需要7种action,4种就可以了:
GET /posts    => /posts/index
GET /posts/1  => /posts/index/1
PUT /posts/1  => /posts/update/1
POST /posts   => /posts/create
DELETE /posts/1 => /posts/destroy/1

new和edit都是提供页面的。
分享到:
评论
1 楼 cvu 2006-12-16  
引用
我总觉得REST应该用于提供数据而不是页面

如果能够套用CRUD,那么REST就是既能提供数据(或者用REST的术语:resource)又能提供页面。
GET  /posts        # list,   for display only
GET  /posts/new    # new,    for display only
GET  /posts/1;edit # edit,   for display only
POST /posts        # update, for resource
GET  /posts/1      # view,   for both display and resource
PUT  /posts/1      # update, for resource
DELETE /posts/1    # destroy,for resource

为什么CRUD好,除了可以理清思路,更是为了可以用REST标准来创建一套既能...又能...的机制。这样为你的网站/程序提供API的活儿就省了。

设想REST流行起来,新网站都缺省地提供符合REST标准的API,整个internet就是一个巨大的类库,这才是真正的webOS。这才是REST的魅力所在,是激动人心的地方,不是仅仅为了某单个项目的优化。

相关推荐

Global site tag (gtag.js) - Google Analytics