heyjorgedev/qstash-php

QStash SDK for PHP - QStash 是一种基于 HTTP 的消息传递和调度解决方案,适用于无服务器和边缘运行时

dev-main 2024-09-09 13:29 UTC

This package is auto-updated.

Last update: 2024-09-09 13:29:38 UTC


README

该项目仍处于早期开发阶段。 我仍在编写大部分 API 端点,API 正在持续变化,因此我建议不要在生产环境中使用。

QStash 客户端 SDK for PHP

Latest Version on Packagist Tests Total Downloads

QStash 是一种针对无服务器和边缘运行时的基于 HTTP 的消息传递和调度解决方案。

QStash 如何工作?

QStash 是您无服务器应用之间的消息代理。您向 QStash 发送一个包含目标、有效载荷和可选设置的 HTTP 请求。我们持久化存储您的消息,并通过 HTTP 将其交付给目标 API。如果目标尚未准备好接收消息,我们将在稍后重试消息,以保证至少一次交付。

安装

您可以通过 composer 安装此包

composer require heyjorgedev/qstash-php

获取您的授权令牌

前往 Upstash 控制台 并复制 QSTASH_TOKEN。

基本用法

use HeyJorgeDev\QStash\QStash;
use HeyJorgeDev\QStash\ValueObjects\Message;
use HeyJorgeDev\QStash\ValueObjects\Url;

$client = QStash::client('QSTASH_TOKEN');

$message = $client->publish(
    Message::to(new Url('https://my-api...'))
        ->withBody([
            'hello' => 'world',
        ])
]);

// to know if the request was successful:
echo $message->isSuccessful()

// to get the message
echo $message->getData();

// to get the message id
echo $message->getData()->id;

接收者

当从 QStash 接收消息时,您应该 验证签名。我们有一个类可以帮助您完成此操作

use HeyJorgeDev\QStash\QStash;

$receiver = QStash::receiver([
    'QSTASH_CURRENT_SIGNING_KEY',
    'QSTASH_NEXT_SIGNING_KEY',
]);

$result = $receiver->verify(
    body: $request->getBody(),
    signature: $request->getHeader('Upstash-Signature'),
    url: $request->getUri(),
);

echo $result; // true or false

测试

composer test

更新日志

请参阅 更新日志 以获取有关最近更改的更多信息。

贡献

请参阅 贡献指南 以获取详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

致谢

许可协议

MIT 许可协议(MIT)。请参阅 许可文件 以获取更多信息。