yii2 RESTful api 返回格式设置,异常返回设置

作者:admin 发布:2017-10-27 浏览:2469次

你会发现如果不设置api返回异常格式的话,真的是看着都崩溃,尤其你用postman来请求的时候,yii默认会把页面的异常样式返回去,所以就是一堆的css啊 HTML标签啊,很难找错误地方 所以修改异常错误返回格式,这样就可以清楚的看出返回错误,方便调试修改。下面是配置:

 'response' => [
     'class' => 'yii\web\Response',
     'on beforeSend' => function ($event) {
         $response = $event->sender;
         $response->data = [
         'code' => $response->statusCode,
         'message' => $response->statusText,
         'data' => $response->data,
       ];
       if($response->statusCode == 500){
         if(YII_DEBUG){
            $exception = Yii::$app->getErrorHandler()->exception;
            $response->data['data'] = [
            'name' => ($exception instanceof Exception || $exception instanceof ErrorException) ? $exception->getName() : 'Exception',
            'type' => get_class($exception),
            'file' => $exception->getFile(),
            'errorMessage' => $exception->getMessage(),
            'line' => $exception->getLine(),
            'stack-trace' => explode("\n", $exception->getTraceAsString()),
                        ];
                        if ($exception instanceof Exception) {
                            $response->data['data']['error-info'] = $exception->errorInfo;
                        }
                    }else{
                        $response->data['data'] = '内部服务器错误';
                    }
                }
                
                $response->format = yii\web\Response::FORMAT_JSON;
            },
        ],


Comments (0)