## 简介
<br>
本章完成`api`目录的创建。
<br>
本教程承接[野山参之yii2基础教程](https://www.kancloud.cn/wordstorm/yii2),在其基础之上继续开发。
<br>
将根目录(后续根目录以`~`代替,在我的虚拟机环境下代表`/home/vagrant/projects/yii-application/`)下的`backend`复制一份,重命名为`api`即可。
<br>
接下来使用`gii`来完成基础目录的构建,当然你也可以手建,[使用gii构建目录结构](https://www.yiichina.com/doc/guide/2.0/start-gii)
<br>
## 创建虚拟域名
<br>
和\[野山参系列之yii2基础教程\]()中一样,需要在虚拟机和主机中分别创建对应的虚拟域名。本教程是`api`开发,域名设置为`api.yii2.com`。
<br>
如下图,虚拟机中设置虚拟域名,7个设置步骤中,重点在2,3。
<br>
![](https://img.kancloud.cn/f7/f7/f7f7bc92d2e2d05d4ded35e4014ddcc9_842x855.png)
<br>
主机中配置一行`192.168.20.30 api.yii2.com`即可。虚拟机`ip`地址可通过`ip addr`查看。
<br>
## 编辑入口文件
<br>
编辑`index.php`
<br>
```
...
if (YII_ENV_DEV) {
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'allowedIPs' => ['192.168.*.*']
];
}
...
```
<br>
编辑`~/common/config/bootstrap.php`,新增一行
<br>
```
...
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
...
```
<br>
[使用gii创建module、controller、model](https://www.php.cn/phpkj/yii/434590.html),这里主要参考第三步 **利用gii生成测试modules**,(小技巧:ctrl+f 可快速帮助定位)
<br>
这里沿用`yii2基础教程`中创建的表`title`。
<br>
最终应该拿到这样的目录结构,`api`文件夹之下
<br>
```
|-config
| ...
| main.php
|-models
| Title.php
|-modules
|-v1
|-controllers
| DefaultController.php
| TitleController.php
|-views
Module.php
|-web
| index.php
```
<br>
## 框架配置
<br>
编辑`~/api/config/main.php`文件,特别注意下层级结构
```
...
'modules' => [
'v1'=>[
'class'=>'api\modules\v1\Module',
]
],
...
'components'=>[
...
'response'=>[
'class'=>'yii\web\Response',
'format'=>\yii\web\Response::FORMAT_JSON,
],
...
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
[
'class'=>'yii\rest\UrlRule',
'controller'=>['v1/title']
]
],
],
]
...
```
<br>
到这里,`api`开发的基础配置就已经完成,下面将进入正式的`api`开发。
<br>