什么是Restful Routing?

Joh*_*ker 14 rest model-view-controller ruby-on-rails

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

controller/action/id/
Admin/editUser/22
Run Code Online (Sandbox Code Playgroud)

JRL*_*JRL 20

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

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


edt*_*ech 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'
Run Code Online (Sandbox Code Playgroud)


ada*_*mse 2

整个 Restful 的一个重要部分是您应该使用不同的 HTTP 方法来表示不同的操作。

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

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