vtgianni / oops-bundle

一个用于记录 API 请求错误的 Symfony 扩展包。

安装次数: 30

依赖关系: 0

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 0

公开问题: 0

类型:symfony-bundle

1.0.1 2023-05-17 13:57 UTC

This package is auto-updated.

Last update: 2024-09-10 11:22:46 UTC


README

Logo

关于

Oops Bundle 是一个允许您管理 API 调用错误返回的 Symfony 扩展包。

安装

要求

⚠️ 使用 Oops Bundle 的要求如下

php: >=7.4
doctrine/orm: >=2.13
symfony/framework-bundle: >=5.4
symfony/validator: >=4.4
symfony/http-client: >=4.4

开始使用

要开始使用 Oops Bundle,请使用 Composer 将包添加到项目的依赖项中

composer require vtgianni/oops-bundle

然后使用以下命令更新您的数据库模式

php bin/console d:s:u --force

如何使用

使用 Oops Bundle 有两种方式:自动或手动错误记录。

自动错误记录

Oops Bundle 为 HttpClient 请求提供了包装器。

这允许您在不担心错误的情况下进行 API 调用,因为它们将自动记录在您的 "oops" 表中。

首先在您的类中注入 OopsClient

use VTGianni\OopsBundle\Service\OopsClient;

class MyService
{
    private $oopsClient;

    public function __construct(OopsClient $oopsClient)
    {
        $this->oopsClient = $oopsClient;
    }
}

然后以与 HttpClient 相同的方式进行 API 调用

$this->oopsClient->request(
    'GET',
    'https://pokeapi.co/api/v2/pokemon/ditto'
);

就这样!如果 API 返回的状态码大于或等于 400,它将自动记录在您的 "oops" 表中。

手动错误记录

Oops Bundle 还提供了直接访问与 "oops" 表交互的一些方法的权限。

这允许您选择要记录的特定数据或管理特定的错误情况。

首先在您的类中注入 OopsService

use VTGianni\OopsBundle\Service\OopsService;

class MyService
{
    private $oopsService;

    public function __construct(OopsService $oopsService)
    {
        $this->oopsService = $oopsService;
    }
}

报告事件

要报告事件,请使用 OopsBundle 的 reportError 方法

$this->oopsService->reportError(
    $url, // required string
    $statusCode, // required int
    $message, // optional string
    $headers, // optional array
    $bodyContent, // optional array
    $responseContent // optional array
);

过滤错误

要过滤错误,请使用 OopsBundle 的 filterErrors 方法

$this->oopsService->filterErrors(
    $errorCode, // optional int
    $desc, // optional bool, default true
    $limit // optional int, default 10
);

计数错误

要计数错误,请使用 OopsBundle 的 countErrors 方法

$this->oopsService->countErrors(
    $nbDays, // optional int, default 7
    $errorCode // opitonal int
);