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表中的数据了
resful的其他接口访问方式可以看权威指南中的教程