一. 先安装yii2.0高级的应用程序模板
操作:这里不做详细介绍,官方文档上一个命令解决
二. 复制文件/目录,修改对应配置文件/命名空间
① 将backend整个目录复制一份出来,重新命名为api放在项目根目录
② 打开api/config/main.php修改配置文件中(id,controllerNamespace配置)
return [
'id' => 'app-api', //改成app-api
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'api\controllers', //还有控制器的命名空间
……//还有一堆配置文件
]
③ 在yii当中,当我们创建一个新的模块或者子模块我们都要在common/config/boostrap.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'); //这个是我新增进来的
④ 对应的控制器代码也要做出相应修改,模型层还是老样子
⑤ URL美化,前面我有写过相对应的文章讲解过,根据RESTful配置,我这边把本地贴出来大家参考下
return[
'components' => [
"urlManager" => [
"enablePrettyUrl" => true,
"enableStrictParsing" => false,
"rules" => [
[
'class' => 'yii\rest\UrlRule',//如果提示这个类找不到,就是引入的位置错误了
'controller' => 'user', //要把请求接口相对应的控制器都要加进来
'pluralize' => false, //设置为false 就可以去掉复数形式了
],//注意,这个地方写的格式
'GET get-user'=>'user/get-user' //路由映射(可有可不有,美观效果,当然也有隐藏我们真是路由的功效)
],
],
……
]
……
]
/*这里有个坑,在yii的中国官方论坛里,有个博主在GET get-user 这行前面添加了参数:extraPatterns会导致项目报错,这边路由的映射直接写到rules的数组的第二个参数这边,千万别写到里面去了*/
⑥ 配置response相关信息
"components" => [
'response' => [
'class' => 'yii\web\Response',
'on beforeSend' => function ($event) {
$response = $event->sender;
//这一块要根据自己的业务逻辑,定义返回对应数据格式,以及相对应的状态码code
$response->data = [
'success' => $response->isSuccessful,
'code' => 0, //可以根据自己的业务逻辑,成功失败这边自己定义
'message' => $response->statusText,
'data' => $response->data,
];
},
],
]