always-open/laravel-request-logger

一个微型包,简化了从您的应用程序中记录HTTP请求的工作

v2.2.1 2023-08-25 13:23 UTC

This package is auto-updated.

Last update: 2024-09-25 15:33:04 UTC


README

Latest Version on Packagist Build Status GitHub Workflow Status (branch) Packagist Downloads

Maintainability

当向外部API发送HTTP请求时,跟踪每个请求及其响应是有价值的。这些见解可以帮助您发现问题、跟踪使用情况,并重用响应进行测试/开发。

安装

您可以通过composer安装此包

composer require always-open/laravel-request-logger

配置

php artisan vendor:publish --provider="\AlwaysOpen\RequestLogger\RequestLoggerServiceProvider"

运行上述命令将发布配置文件。

用法

创建

要向系统添加日志,您必须首先为适当的日志创建迁移和模型。这是通过使用包的request-logger:make-table命令完成的。

该命令需要要跟踪的项的名称,它将用于命名模型和表。

示例

php artisan request-logger:make-table facebook

这将创建一个模型\App\Models\FacebookRequestLog和一个迁移来创建表facebook_request_logs

实现

然后您可以使用该模型创建请求日志,其中您可以执行API调用。

示例

Guzzle
function makeFacebookApiCall(array $body, Client $facebook_client)
{
    $request_headers = [
        'api-key' => $config->apiKey,
        'Content-Type' => 'application/json',
    ];

    $versioned_path = self::buildVersionedUrlPath($path);

    $encoded_body = json_encode($body, JSON_UNESCAPED_SLASHES);

    $request = new Request(
        'GET',
        '/v1/users',
        $request_headers,
        $encoded_body,
    );
    
    $request_log = FacebookRequestLog::makeFromGuzzle($request);
    
    $response = $client->send($request);
    
    $request_log->response_code = $response->getStatusCode();
    $request_log->response = json_decode((string)$response->getBody(), true);
    $request_log->save();
}

您还可以手动设置每个属性,然后保存日志实例。

测试

composer test

使用Docker

所有资产都设置在docker-compose.yml文件下。您第一次运行Docker镜像时,必须使用以下命令构建它

./docker.sh -b -s

然后您可以使用以下命令在后台启动它

./docker.sh -d

从那里,您可以在隔离环境中运行测试

贡献

请参阅CONTRIBUTING以获取详细信息。

安全性

如果您发现任何安全相关的问题,请通过电子邮件@qschmick联系,而不是使用问题跟踪器。

致谢

许可

MIT许可证(MIT)。有关更多信息,请参阅许可文件