什么是Restful Routing?

我熟悉Ruby On Rails的路由系统,以及Code Igniter和PhpCake如何路由东西,但是除了拥有一个基于目录结构提供路由的集中位置之外,还有更多内容吗? 像这样

controller/action/id/ Admin/editUser/22 

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

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

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' 

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

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

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

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

例:

 GET /users/1 

去:

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

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

 rake routes 

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

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

所以PUT = POST +隐藏字段。