什么是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 +隐藏字段。