centras / laravel-centras
centras 库
1.0.4
2024-04-09 07:13 UTC
Requires (Dev)
- phpunit/phpunit: ~5.0 || ~6.0 || ~7.0
README
Laravel-centras - 我们的库,包括所有微服务的一些通用功能。
目前,主要功能包括:
- 用于在调用 API 时发送响应的界面,遵循统一模板。
- 包括用于 HTTP 响应状态码的预设常量。
- 用于创建响应的构造函数。
- 用于记录传入请求、子请求、响应和子响应的提供程序。
- 使用 Graylog 服务进行日志记录。
- 用于生成通用异常模板的基本类。
- 生成的异常列表包括
- AcceessDeniedException
- ApiException
- CentrasException
- ConnectionException
- DatabaseException
- FileException
- InvalidOperationException
- NotFoundException
- PaymentException
- TimeoutException
- ValidationException
- 生成的异常列表包括
安装
- 将以下记录添加到 composer.json 文件的根 json 对象末尾
"repositories": { "git.cic.kz/86": { "type": "composer", "url": "https://git.cic.kz/api/v4/group/86/-/packages/composer/packages.json" } }
例如,可以取一个微服务的 composer.json 文件。
- 在项目根目录中创建一个名为
auth.json
的文件。 - 将位于项目 Config 文件夹中的
auth.json
文件的内容复制到刚创建的文件中。 - 运行命令。
composer require centras/laravel-centras:1.0.1
- 在执行上一个命令完成后,运行以下命令。
composer update centras/laravel-centras
使用
1. 响应和异常
要使用响应和异常,将代表程序执行结果的数组封装在特殊函数包装器中。
为此,在您的控制器中导入以下类。
use App\Api\Api; use Illuminate\Http\JsonResponse;
在您的方法末尾添加以下结构。
return Api::response( {массив данных}, {код статуса}, {сообщение} );
将您方法的返回类型指定为 JsonResponse
。
之后,一切应该都可以正常工作。
2. 日志记录
首先,检查 laravel-centras
包的更新。
将 CentrasServiceProvider
提供程序连接到文件 config/app.php
,如下所示
...App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, App\Providers\CentrasServiceProvider::class, ],
之后,您需要在 config
文件夹中添加一个名为 centras.php
的文件,内容如下
<?php return [ 'graylog_url' => 'http://logger:8000/api/write/log' ];
现在,您只需使用提供者中的名为 IOLog
的对象。
请求分为 request
(以下称为请求)
app('IOLog')->request($data);
和 response
(以下称为响应)。
app('IOLog')->response($result->original);
-
确保响应的数量不超过请求的数量。
-
理想情况下,它们的数量应该相同。
-
确保您发送给日志记录器的数据是一个字典。
有时,为了满足所有这些条件,请求甚至可能看起来像这样
$this->ioLog->response([ 'result' => (array)$this->response ]);