leegoway / yii2-rest
Yii框架的Yii2 Rest扩展
dev-master
2016-11-08 09:16 UTC
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-28 20:09:09 UTC
README
Yii框架的Yii2 Rest扩展
安装
安装此扩展的首选方式是通过 composer。
运行以下命令
php composer.phar require --prefer-dist leegoway/yii2-rest "*"
或者将以下内容添加到你的 composer.json
文件的 require 部分中。
"leegoway/yii2-rest": "*"
使用
格式化的ActiveController输出
一旦安装了此扩展,你只需在控制器中将其用作基本控制器即可
<?php namespace app\controllers; use Yii; use leegoway\rest\RestActiveController; class MyController extends RestActiveController { public $modelClass = 'app\models\User'; } ?>
然后你可以获得格式化的输出:{"code":200, "msg":"", "data":{...}}
主动使用格式化类进行格式化输出
此外,你可以在需要的地方使用格式化类,如下所示
use leegoway\rest\Formatter; ... Formatter::success($data);//返回业务数据 Formatter::error($errors);//返回校验失败的数据 Formatter::fail($msg);//业务逻辑问题导致的失败
然后你可以获得格式化的输出。
捕获业务异常
最后,你可以使用以下方法来捕获你定义的异常并输出格式化响应。
a、修改你的配置文件
'errorHandler' => [ 'class' => 'leegoway\rest\RestErrorHandler', 'errorAction' => 'site/error', 'restErrorAction' => 'error/error' ],
b、修改你的 error/error
控制器
<?php namespace app\controllers; class MyController extends leegoway\rest\RestErrorController { }
c、抛出基于 leegoway\rest\RestException
的异常
throw new leegoway\rest\RestException('msg', code);
对actions进行权限控制
第三,如果你需要检查动作级别的权限,你可以编写如下代码
a、你应该需要引入 leegoway\yii2-uic
composer require leegoway\yii2-uic
b、修改你的配置
return [ 'components' => [ 'uicAuther' => [ 'class' => 'leegoway\uic\Auther', 'domain' => 'autops.corp.elong.com',//cookie的domain属性 'path' => '/',//cookie的路径 'expire' => 7200 //超时时间 ] ], ];
c、检查你的动作权限
class MyController extends RestActiveController { public $uicRules = [ 'index' => [ 'orgainzationId' => '...', 'permissionId' => '...' ], 'view' => [ 'orgainzationId' => '...', 'permissionId' => '...' ], ... ]; }