不败君

前端萌新&初级后端攻城狮

Laravel 自定义接口错误响应

Laravel 自定义接口错误响应

2019-12-18 18:09:02

围观(2244)

开发 API 接口,在控制器或者某个业务逻辑模块判断客户端传递过来的参数,就会响应返回一段 JSON 。 比如这样的:

{
    "code": 403,
    "message": "发生错误",
    "data": ""
}


用 Laravel 可以这样返回这种响应:

return response()->json(['code' => 403, 'message' => '发生错误', 'data' => '']);


但是使用这种方式不是很方便,因为代码太长了。所以可以这样:

在 App/Exceptions 目录下,新建一个 ApiException 的类。 写入代码:

<?php

namespace App\Exceptions;

use Exception;

class ApiException extends Exception
{
    protected $code;

    protected $message;

    public function __construct($message = '', int $code = 0)
    {
        $this->code = $code;
        $this->message = $message;
    }

    public function render()
    {
        return response()->json([
            'code' => $this->code,
            'message' => $this->message,
            'data' => '',
        ]);
    }
}


再回到控制器引入一下该类:

use App\Exceptions\ApiException;

就可以在方法里面直接调用错误响应

throw new ApiException('客户端传递的参数错误', 403);


最后请求该控制器,可以得到这样的 JSON:

{
    "code": 403,
    "message": "客户端传递的参数错误",
    "data": ""
}


本文地址 : bubaijun.com/page.php?id=154

版权声明 : 未经允许禁止转载!

评论:我要评论
发布评论:
Copyright © 不败君 粤ICP备18102917号-1

不败君

首 页 作 品 微 语