路由
随着資源和控制器類準備,您可以使用URL如
http://localhost/index.php?r=user/create
通路資源,類似于你可以用正常的Web應用程式做法。
在實踐中,你通常要用美觀的URL并采取有優勢的HTTP動詞。 例如,請求
POST /users
意味着通路
user/create
動作。 這可以很容易地通過配置
urlManager
應用程式元件來完成 如下所示:
'urlManager' =>
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' =>
'class' => 'yii\rest\UrlRule', 'controller' => 'user'],
],
]
相比于URL管理的Web應用程式,上述主要的新東西是通過RESTful API 請求[[yii\rest\UrlRule]]。這個特殊的URL規則類将會 建立一整套子URL規則來支援路由和URL建立的指定的控制器。 例如, 上面的代碼中是大緻按照下面的規則:
[
'PUT,PATCH users/<id>' => 'user/update',
'DELETE users/<id>' => 'user/delete',
'GET,HEAD users/<id>' => 'user/view',
'POST users' => 'user/create',
'GET,HEAD users' => 'user/index',
'users/<id>' => 'user/options',
'users' => 'user/options',
]
該規則支援下面的API末端:
-
: 逐頁列出所有使用者;GET /users
-
: 顯示使用者清單的概要資訊;HEAD /users
-
: 建立一個新使用者;POST /users
-
: 傳回使用者為123的詳細資訊;GET /users/123
-
: 顯示使用者 123 的概述資訊;HEAD /users/123
-
andPATCH /users/123
: 更新使用者123;PUT /users/123
-
: 删除使用者123;DELETE /users/123
-
: 顯示關于末端OPTIONS /users
支援的動詞;/users
-
: 顯示有關末端OPTIONS /users/123
支援的動詞。/users/123
您可以通過配置
only
和
except
選項來明确列出哪些行為支援, 哪些行為禁用。例如,
[
'class' => 'yii\rest\UrlRule',
'controller' => 'user',
'except' => ['delete', 'create', 'update'],
],
您也可以通過配置
patterns
或
extraPatterns
重新定義現有的模式或添加此規則支援的新模式。 例如,通過末端
GET /users/search
可以支援新行為
search
, 按照如下配置
extraPatterns
選項,
[
'class' => 'yii\rest\UrlRule',
'controller' => 'user',
'extraPatterns' =>
'GET search' => 'search',
],