Yii2 有个很重要的特性是对 Restful API
的默认支持, 通过短短的几个配置就可以实现简单的对现有Model
的RESTful API
1.打开 api\controllers
新建一个User控制器,继承 yii\rest\ActiveController
,命名为 UserController
,代码如下:
<?php
namespace api\controllers;//注意点1:这里设置了module,则在后面路由设置时需要加上module的路径
use yii\rest\ActiveController;
class UserController extend extends ActiveController
{
public $modelClass = 'common\models\User';//注意点2:指定要操作的数据模型,注意若文件命名为UserModel,则这里应用common\models\UserModel
}
2.打开 api\config\main.php
修改 components
属性,添加下列代码:
...
'urlManager' => [
'enablePrettyUrl' => true,//美化url==ture
'enableStrictParsing' => true,//不启用严格解析
'showScriptName' => false,//隐藏index.php
'rules' => [
[
'class' => 'yii\rest\UrlRule',
'controller' => 'api\user',//注意点3:这里和注意点1配合,有module则要加上
'pluralize' => false,//注意点4:设置为false就可以去掉复数形式了,复数形式很坑爹,比如activity的复数是activities
],
],
]
...
ok,到此就配置完毕了,访问路径如下(前面加上host即可):
GET /users
: 逐页列出所有用户HEAD /users
: 显示用户列表的概要信息POST /users
: 创建一个新用户GET /users/123
: 返回用户 123 的详细信息HEAD /users/123
: 显示用户 123 的概述信息PATCH /users/123
: and PUT /users/123: 更新用户123DELETE /users/123
: 删除用户123OPTIONS /users
: 显示关于末端 /users 支持的动词OPTIONS /users/123
: 显示有关末端 /users/123 支持的动词