用于发送和接收 Webhook 的新包
发布于 作者: Paul Redmond
Spatie 发布了两个新的软件包,旨在帮助开发人员在 Laravel 中发送和接收 Webhook:laravel-webhook-server 和 laravel-webhook-client。如果您需要为应用程序的使用者提供 Webhook,或者您需要自己使用 Webhook,请考虑独立使用或同时使用这些软件包。
我们将快速浏览这两个软件包,为您提供一个高级概述,然后将您带到 GitHub 代码库!
Laravel Webhook 服务器
在他的最近的博客文章 在 Laravel 应用程序中发送和接收 Webhook 中,Freek 对服务器软件包的功能进行了以下评论
laravel-webhook-server 允许您轻松地在 Laravel 应用程序中配置和发送 Webhook。因此,您将将其安装到希望通知其他应用程序某些事件已发生的应用程序中。该软件包支持签署调用、重试调用和退避策略。
虽然我们不会详细介绍这些功能,但请注意,服务器软件包具有支持向其他应用程序发送 Webhook 所需的一切。在高级别上,以下是一个来自文档的示例
WebhookCall::create() ->url('https://other-app.com/webhooks') ->payload(['key' => 'value']) ->useSecret('sign-using-this-secret') ->dispatch();
您可以通过使用 Spatie 软件包提供的接口创建自定义签署器来自定义签署过程(请参阅 Spatie\WebhookServer\Signer\Signer
接口)。
Laravel Webhook 客户端
在 Webhook 过程的另一端,您有时将是其他 Webhook 的使用者。Spatie 提供了一个伴侣软件包(也可以作为独立软件包使用),用于接收 Webhook。根据 Freek 的文章,该软件包包括对验证、存储和在队列中处理有效负载的支持
laravel-webhook-client 支持验证已签署的调用、存储有效负载以及在排队的作业中处理有效负载。
与 Webhook 服务器软件包一样,客户端软件包支持通过软件包提供的 SignatureValidator
接口自定义签名验证。
客户端软件包使用数据库来存储和处理 Webhook。使用作业类,您可以处理有效的 Webhook
namespace App\Jobs; use \Spatie\WebhookClient\ProcessWebhookJob; class ProcessWebhookJob extends SpatieProcessWebhookJob{ public function handle() { // $this->webhookCall // contains an instance of `WebhookCall` // perform the work here }
该软件包甚至支持为多个应用程序处理传入的 Webhook 请求。自述文件 中有用于从多个应用程序路由 Webhook 的示例配置和路由器配置。
了解更多
我强烈建议您查看 Freek 的博客文章 在 Laravel 应用程序中发送和接收 Webhook,以了解有关这些软件包的更多详细信息。这两个软件包看起来都很不错,我迫不及待地想在我的应用程序中尝试它们!出色的工作,祝贺 Spatie 团队发布了这些有用的开源应用程序!
您可以在 GitHub 上的 spatie/laravel-webhook-server 和 spatie/laravel-webhook-client 上了解有关这些软件包的更多信息,获取完整的安装说明并查看源代码。