horcrux/handleresponse

v1.0 2022-10-08 18:22 UTC

This package is auto-updated.

Last update: 2024-09-08 22:17:32 UTC


README

horcrux-handleresponse 是一个小的 Laravel 包,用于处理 Laravel 中的响应模式

安装

composer require horcrux/handleresponse

添加配置文件

php artisan vendor:publish --provider="Horcrux\Handleresponse\HandleresponseServiceProvider" --tag="config"

这将加载配置文件,其名称为 "horcruxresponse.php",位于配置目录下,文件内容如下

<?php

return [
    'withstatus' => false,
    'default_dirver' => 'default',
    'drivers' => [
        'drivers_name' => [
            'status_key' => 'status',
            'reset_success' => ['data'],
            'reset_error' => ['number', 'message']
        ]
    ]
];

withstatus 表示是否在响应中添加状态码

default_dirver 是您想要使用的默认驱动或模式名称

driver 是您想要使用的驱动数组

driver.status_key 是响应状态的键值,true/false

driver.reset_success 是成功响应中的数据数组

driver.reset_error 是失败响应中的数据数组

使用方法

1- 创建一个类似于这样的驱动

<?php

return [
   'withstatus' => false,
   'default_dirver' => 'profile-api',
   'drivers' => [
       'profile-api' => [
           'status_key' => 'status',
           'reset_success' => [ 'api_number','data'],
           'reset_error' => ['error_number', 'error_message']
       ]
   ]
];

2- 创建控制器并使用 LaravelResponse

<?php

namespace App\Http\Controllers;

use Horcrux\Handleresponse\Core\Traits\LaravelResponse;
use Illuminate\Http\Request;

class TestController extends Controller
{
   use LaravelResponse;
   public function index()
   {
       return $this->senddata([152 , 'one']);
   }
}

这将返回

{ status: true,
  api_number: 152,
  data: "one" }
如果您想要返回错误
return $this->senderror([258 , 'user is not found'])

将返回

{	
status:	false,
error_number:258,
error_message:"user is not found" }

您可以在方法中设置状态码,例如

return $this->senderror([258 , 'user is not found'],500);
// response will return with 500 status code

同时,如果您想要在某些响应中更改默认驱动,您还可以设置驱动名称

return $this->senderror([258 , 'user is not found'],500 , 'other_driver');

更改驱动的方法

$this->change_driver('other_driver');
return $this->senderror([258 , 'user is not found']);

仅发送成功的方法

return $this->sendsuccess();

将返回

{status:true}

自定义函数

要自定义函数,请确保函数以 h_ 开头,例如

<?php

return [
    'withstatus' => false,
    'default_dirver' => 'profile-api',
    'drivers' => [
        'profile-api' => [
            'status_key' => 'status',
            'reset_success' => ['api_number', 'data'],
            'reset_error' => ['error_number', 'error_message'],
            'h_profile' => ['profile_id', 'profil_name', 'data'],
        ]
    ]
];

在控制器中使用它,如下所示

<?php

namespace App\Http\Controllers;

use Horcrux\Handleresponse\Core\Traits\LaravelResponse;

class TestController extends Controller
{
    //
    use LaravelResponse;
    public function index()
    {
        return $this->h_profile([252, 'youssef', [
            'one' => 'one',
            'two' => 'two'
        ]]);
        //return $this->h_profile([data_array], status_code, driver_name)
    }
}

响应将返回

{
    profile_id: 252,
    profil_name: "youssef",
    data: { one: "one", two: "two" },
}