天天看點

yii2 restful web服務路由

路由

随着資源和控制器類準備,您可以使用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​

    ​: 建立一個新使用者;
  • ​GET /users/123​

    ​: 傳回使用者為123的詳細資訊;
  • ​HEAD /users/123​

    ​: 顯示使用者 123 的概述資訊;
  • ​PATCH /users/123​

    ​​ and​

    ​PUT /users/123​

    ​: 更新使用者123;
  • ​DELETE /users/123​

    ​: 删除使用者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',
    ],