back/api-response

统一 API 响应包

1.0.2 2023-02-09 09:12 UTC

This package is auto-updated.

Last update: 2024-04-09 12:00:51 UTC


README

Latest Version on Packagist Total Downloads

团队内部使用的API响应处理包

安装

你可以通过composer进行安装

composer require back/api-response

使用

  1. 生成配置文件
 php artisan vendor:publish --provider="Back\ApiResponse\ApiResponseServiceProvider"
  1. 修改app/Http/Controllers/Controller.php
namespace App\Http\Controllers;

use Back\ApiResponse\ResponseHandler; // 引入
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;

class Controller extends BaseController
{
    // 引入 ResponseHandler Trait
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests, ResponseHandler;
}
  1. 在控制器中使用得方法,前提是必须拿app/Http/Controllers/Controller.php作为父类,代码编写方式请自行查看你的项目/vendor/back/api-response/ResponseHandler.php
// 成功通知
// 这个方法, data,msg 可以自己进行控制可选
$this->respond($data, $msg);

// 自定义成功消息通知
// 这个方法,默认返回成功。data 数据默认为 null,msg 信息自行控制
$this->respondWithMessage($msg);

// 错误方法
// 错误方法,可以传递 api_code,系统根据 api_code 自行查找对应的文字说明,具体看你是否配置了文字对应关系
$this->respondBadRequest($api_code);

// 自定义错误消息通知
// 这个方法,默认返回成功。$api_code 数据必传,msg 信息自行控制,如果不传默认去找 $api_code 对应得消息通知
$this->respondWithErrorMessage($api_code, $msg);

// 错误提示
// 错误方法,可以传递 api_code,系统根据 api_code 必传自行查找对应的文字说明,可以控制 http_code 必传。比如 人脸识别失败,我要返回 200 状态码。    
$this->respondWithError($api_code, $http_code);

// 身份验证失败
// 如果账号密码错误,或者登录失效都可以是用此方法,参数必传
$this->respondUnAuthorizedRequest($api_code); 

// 数据不存在
// 数据不存在时可以使用此方法,参数必传
$this->respondNotFound($api_code);

4.接管异常处理,修改app/Exceptions/Handler.php

  1. 引入
use Back\ApiResponse\Exceptions\BackExceptionHandler;
  1. 如果没有render方法,那么就增加这个方法。如果有那么修改此方法为下面内容
public function render($request, Throwable $e)
{
    return BackExceptionHandler::render($request, $e);
}

修改日志

请查看CHANGELOG来观看最近发生的变化

贡献

有关详细信息请观看CONTRIBUTING

安全

如果您发现任何与安全相关的问题,请发送电子邮件1300657068@qq.com而不是使用issues

License

The MIT License (MIT). Please see License File for more information.