我们使用的是 yii2高级模板 yii2-app-advanced
- 复制一份 backend 到当前目录下,并修改名称为 api
- 修改 common\config\bootstrap.php,在其后添加如下别名:
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
- 修改 api/config/main.php,把含有 backend 都改成 api
- 配置 URL 规则
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
[
'class' => 'yii\rest\UrlRule',
'controller' => ['v1/user'],
'pluralize' => false,
'except'=>['delete','create','update','view'], //排除掉这些方法,防止 /v1/user/3 之类的去读取数据
'extraPatterns' => [
'POST login' => 'login',
'GET user-profile' => 'user-profile'
]
],
],
],
- 启用 JSON 输入
'request' => [
'parsers' => [
'application/json' => 'yii\web\JsonParser',
]
]
- 新建 modules/v1/UserController.php
<?php
namespace api\modules\v1\controllers;
use yii\rest\ActiveController;
class UserController extends ActiveController
{
public $modelClass = 'common\models\User';
}
- 使用 postman 测试:
GET localhost/xxx/v1/user
,将会拿到你想要的信息