holocronit/laravel-api-response-provider

Laravel API调用实现结构化响应的Provider库

v1.1.2 2023-04-07 07:49 UTC

This package is auto-updated.

Last update: 2024-09-07 10:57:51 UTC


README

Laravel API调用实现结构化响应的Provider库

这个库有助于标准化生成任何API层的响应。它还提供了多语言支持错误响应的实用工具。

库始终确保包含“状态”键,其中包含操作的逻辑结果。如果“状态”为false,则包含“code”和“description”的“错误”对象将始终存在。以下是一些示例

// Success operation message
{
    "status" : true,
    "foo" : "bar"
}

// Error operation message
{
    "status" : false,
    "error" : {
        "code" : 10,
        "desc" : "Error description message"
    }
}

安装

composer require laravel-api-response-provider

php artisan vendor:publish --tag=errors-config

配置

Add new service provider to the providers’ array as shown below.

'providers' => [
     ...,
     App\Providers\RouteServiceProvider::class,
     // Our new package class
     Holocronit\LaravelApiResponseProvider\responseProvider::class,
 ],

如何使用

//Remember to import the library
use Holocronit\LaravelApiResponseProvider\responseProvider;


$responseProvider = new responseProvider();

//First parameter is the DATA, the second parameter is the KEY
$responseProvider->addData('foo',"bar");
return response()->json($responseProvider->getResponseData());

// With error

$responseProvider = new responseProvider();


$responseProvider->inError(10, "My custom error message");
// OR
$responseProvider->inError(1); // If not specified, the message will be taken from the preloaded catalog for the current locale. This is useful if you have errors common to multiple methods

return response()->json($responseProvider->getResponseData());


// With custom locale
$responseProvider = new responseProvider();
$responseProvider->loadErrorListForLocale('it');
// Default locale is "en".

$responseProvider->inError(1);
return response()->json($responseProvider->getResponseData());
    

更新错误列表

Update and add your own custom errors in the published file errors_list.json in Config Path with your custom locale.


{
	"en": {
		"1": "Generic error",
		"2": "Empty token"
	},
	"it": {
		"1": "Errore generico"
	}
}