http://www.yiichina.com/tutorial/835
第一步进入高级模板根目录,复制backend改名为api
cp backend/ api -r
第二步复制api初始化模板
cp -a environments/dev/frontend environments/dev/api
cp -a environments/prod/frontend environments/prod/api
第三步添加api初始化代码,在根目录下/environments/index.php
return [
'Development' => [
'path' => 'dev',
'setWritable' => [
'backend/runtime',
'backend/web/assets',
'frontend/runtime',
'frontend/web/assets',
'api/runtime', //add api
'api/web/assets', //add api
],
'setExecutable' => [
'yii',
'tests/codeception/bin/yii',
],
'setCookieValidationKey' => [
'backend/config/main-local.php',
'frontend/config/main-local.php',
'api/config/main-local.php', //add api
],
],
'Production' => [
'path' => 'prod',
'setWritable' => [
'backend/runtime',
'backend/web/assets',
'frontend/runtime',
'frontend/web/assets',
'api/runtime', //add api
'api/web/assets', //add api
],
'setExecutable' => [
'yii',
],
'setCookieValidationKey' => [
'backend/config/main-local.php',
'frontend/config/main-local.php',
'api/config/main-local.php', //add api
],
],
];
第四步初始化模板
php init
第五步给api添加别名,在根目录下/common/config/bootstrap.php
Yii::setAlias('@common', dirname(__DIR__));
Yii::setAlias('@frontend', dirname(dirname(__DIR__)) . '/frontend');
Yii::setAlias('@backend', dirname(dirname(__DIR__)) . '/backend');
Yii::setAlias('@console', dirname(dirname(__DIR__)) . '/console');
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api'); //add api
第六步修改api配置文件,在根目录下/api/config/main.php
'id' => 'app-api',
'controllerNamespace' => 'api\controllers',
'components' => [
//其他代码
'urlManager' => [
"enablePrettyUrl" => true,
"enableStrictParsing" => true,
"showScriptName" => false,
"suffix" => "",
"rules" => [
['class' => 'yii\rest\UrlRule', 'controller' => ['yours controller']],
],
],
],