leegoway/yii2-rest

Yii框架的Yii2 Rest扩展

安装: 25

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

公开问题: 0

类型:yii2-extension

dev-master 2016-11-08 09:16 UTC

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' => '...'
		],
		...
	];

}