yii2 resful的api搭建

作者:zheng_Great 2017-03-15 2535次

1.其实很简单,复制一个frontend或者backend,将其重命名为api放在同级目录下

2.打开common/config/bootstrap.php,为我们的api添加别名

Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');

3.给api目录配置一个访问地址:api.demo.com指向 api/web,不会的同学点这里

4.然后删除controller和views文件夹,然后将api文件中的frontend替换为api(比如命名空间)

5.通过gii生成module


6.同时在 api/config/main.php 中做如下配置:

修改controllerNamespace

'controllerNamespace' => 'api\controllers',

添加module的配置

'modules' => [
    'v1' => [
        'class' => 'api\modules\v1\Module',
    ],
],

开启urlManager,如下配置

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        ['class' => 'yii\rest\UrlRule', 'controller' => ['v1/user']],
    ],
],

删除

'errorHandler' => [
'errorAction' => 'site/error',
],

7.在modules/v1/controllers 创建UserController.php 代码如下

<?php
namespace api\modules\v1\controllers;
use yii\rest\ActiveController;
/**
* Default controller for the `v1` module
*/
class UserController extends ActiveController
{
    public $modelClass = 'common\models\User';
}

如上所述,yii2 resful api就搭建完成了 访问以下http://api.demo.com/v1/users 就能返回user表中的数据了