什么是Restful Routing?

时间:2010-03-14 11:23:08

标签: ruby-on-rails model-view-controller rest

我熟悉Ruby On Rails的路由系统,以及Code Igniter和PhpCake的路由方式,但是除了拥有一个基于目录结构的路由的集中位置之外,还有更多内容吗?喜欢这个

controller/action/id/
Admin/editUser/22

5 个答案:

答案 0 :(得分:20)

基本前提是,不是仅依靠URL来指示您想要访问的网页(并且仅使用一种方法),而是VERB和URL的组合。

这样,当使用不同的动词(例如GET,PUT,POST,DELETE)时,相同的URL将转到另一个页面。这样可以实现更清晰,更短的URL,并且特别适用于大多数Web应用程序所使用的CRUD应用程序。

答案 1 :(得分:14)

RESTful Rails路由,我认为这显示了REST的原理

/users/       method="GET"     # :controller => 'users', :action => 'index'
/users/1      method="GET"     # :controller => 'users', :action => 'show'
/users/new    method="GET"     # :controller => 'users', :action => 'new'
/users/       method="POST"    # :controller => 'users', :action => 'create'
/users/1/edit method="GET"     # :controller => 'users', :action => 'edit'
/users/1      method="PUT"     # :controller => 'users', :action => 'update'
/users/1      method="DELETE"  # :controller => 'users', :action => 'destroy'

答案 2 :(得分:2)

整个安静的事情的一个重要部分是你应该使用不同的HTTP方法来表示不同的动作。

例如在Rails中,如果您要向HTTP Delete发送/users/[id],则表示您要删除该用户。 HTTP Get将检索用户的适当表示。 HTTP Put可以更新或创建用户。

这些是一些示例,但由于HTTP中没有RESTful API的标准,因此在所有情况下都不正确。

答案 3 :(得分:1)

它将HTTP VERBS + URL映射到控制器中的特定操作

示例:

GET /users/1      

转到:

:controller => 'users', :action => 'show'

要查看完整映射,请转到终端,然后键入:

rake routes

答案 4 :(得分:0)

@edtsech是对的。我想在这里补充一点。

在更新的情况下,该方法是“POST”,其中包含需要更新的数据的隐藏字段。

所以PUT = POST +隐藏字段。