yii2 rest api异常处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yii2 rest api异常处理相关的知识,希望对你有一定的参考价值。

我正在使用yii2 rest api模块,其中控制器类扩展了一个ActiveController,我遇到了处理错误异常的问题。当Yii REST框架使用的HTTP状态代码(如500,400)时,我需要一个正确的json响应。如果我在访问api上尝试了一个错误的方法调用,它会显示一个异常对象

object(yiiwebNotFoundHttpException)#170 (8) { ["statusCode"]=> int(404) 

在我的config / main.php中设置响应

'response' => [
    'class' => 'yiiwebResponse',
    'on beforeSend' => function ($event) {
        $response = $event->sender;
        if ($response->data !== null) {
           $response->data = [
             'success' => $response->isSuccessful,
             'data' => $response->data,
           ];
          $response->statusCode = 200;
        }
    },
]

它应该显示一个msg,如:

{
    "status": 0,
    "error_code": 400,
    "message": "Bad request"
}

我尝试使用以下链接在控制器中添加行为动词:click here

我的整个应用程序基于api所以请帮助我处理所有类型的错误

答案

还取决于你的服务器配置,但通常你不需要任何。这应该足够了:

'response' => [
    'format' => yiiwebResponse::FORMAT_JSON,
    'charset' => 'UTF-8',
],

以下是使用这些配置的输出示例:https://yii2-f4a.rhcloud.com/api/tags

以上是关于yii2 rest api异常处理的主要内容,如果未能解决你的问题,请参考以下文章

Yii2框架RESTful API教程 - 快速入门

yii2 RESTful api的详细使用

Yii2:REST API - 404 错误

Yii2 使用 RESTful 写API接口 实例

Yii2 Restful api

Yii2 Rest API 承载认证