doohlabs/yii2-webhooks

Yii2 扩展,用于处理 webhooks

安装次数: 231

依赖关系: 0

建议者: 0

安全性: 0

星标: 0

关注者: 0

分支: 5

开放问题: 0

类型:yii2-extension

1.0.5 2022-01-24 13:58 UTC

This package is auto-updated.

Last update: 2024-09-24 19:32:09 UTC


README

用于在 yii2 中创建和使用 webhooks 的扩展。

描述

添加 webhooks 并将其附加到 ActiveRecord 对象的事件上,以触发对外部系统(第三方服务、您的应用程序等)的 HTTP 请求。

用例示例

假设在您的项目中有一个扩展 ActiveRecordExample 类。

如果您想在每次创建新的 Example 记录时触发 webhook,您将创建一个新的 Webhook 记录,并将其分配给您的 Example 类。

您可以通过将 Webhook 记录的 event 属性设置为 app\models\Example::EVENT_AFTER_CREATE 的值来实现此操作。您还设置 webhook 的 urlmethod 值。例如 http://api.service.comPOST

现在,每当在您的项目中创建新的 Example 记录时,您的 API 服务都会收到一个带有 Example 对象属性的 HTTP 请求。

安装

安装此扩展的首选方法是通过 composer

运行 composer 安装。

composer require --prefer-dist doohlabs/yii2-webhooks "^1.0"

配置

运行迁移。它创建 webhookwebhook_log 表。

php yii migrate --migrationPath=@doohlabs/webhooks/migrations

扩展需要初始化

'bootstrap' => [
    // ...
    'webhooks'
],

将模块添加到配置中

'modules' => [
    // ...
    'webhooks' => [
        'class' => 'doohlabs\webhooks\Module',
        'allowedModels' => [
            'app\models\Model1',
            'app\models\Model2',
        ],
        'allowedEvents' => [
            'EVENT_AFTER_DELETE',
            'EVENT_AFTER_INSERT',
            'EVENT_AFTER_UPDATE',
        ],
        'timeout' => 30,
    ],
],

用法

Webhooks

通过导航到 webhooks 模块创建新的 webhook:index.php?r=webhooks/webhook/create

您可以使用来自 BaseActiveRecord 类的预定义事件,例如 EVENT_AFTER_INSERT,或者您可以使用您自己的事件,例如 app\models\Example::EVENT_EXAMPLE

模型必须实现 \doohlabs\webhooks\interfaces\WebhookModelInterface。

用户生成的事件

在触发您自定义事件时,请确保您像以下代码一样 发送实例化模型

Event::trigger(Example::class, Example::EVENT_EXAMPLE, new Event(['sender' => $model]));

日志记录器

扩展记录了每个触发 webhook 的 http 请求和响应。

日志可在 index.php/webhooks?r=/webhook-log/index 上找到。

实现您自己的 EventDispatcher

您可以添加您自己的事件调度器实现以满足您的需求。它必须实现 EventDispatcherInterface

配置需要相应更新

'modules' => [
    // ...
    'webhooks' => [
        'class' => 'doohlabs\webhooks\Module',
        'eventDispatcherComponentClass' => 'app\components\MyDispatcher',
    ],
],

实现您自己的 Webhook

待定

屏幕截图

Image of webhook index page

Image of webhook-log index page

贡献

您的本地设置应包含此存储库和现有的 yii2 项目(最好是干净的 yii2 模板)。

通过将其添加到项目的 composer.json 文件中,将存储库链接到您的项目

"repositories": [
    {
        "type": "path",
        "url": "../yii2-webhooks"
    }
]

使用 composer 在项目中安装它

composer require --prefer-dist doohlabs/yii2-webhooks "*"

您可以直接在项目中的 vendor 文件夹中编辑文件,这样更方便。

鸣谢

此扩展由 Doohlabs 维护。

原始扩展由 Bornfight 创建并维护。

许可证

MIT