always-open / laravel-request-logger
一个微型包,简化了从您的应用程序中记录HTTP请求的工作
v2.2.1
2023-08-25 13:23 UTC
Requires
- php: ^8.0.0|^8.1.0
- always-open/laravel-process-stamps: ^5.0|^6.0|^7.0
- guzzlehttp/guzzle: ^7.4
- laravel/framework: ^8.0|^9.0|^10.0
Requires (Dev)
- doctrine/dbal: ^2.9|^3.0
- friendsofphp/php-cs-fixer: ^3.1
- laravel/tinker: ^2.7
- nunomaduro/larastan: ^1.0
- orchestra/testbench: ^6.22
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
README
当向外部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)。有关更多信息,请参阅许可文件。