kayrunm/replay

一个用于Laravel中幂等请求的简单包。

1.1 2023-03-30 14:47 UTC

This package is auto-updated.

Last update: 2024-08-30 01:26:36 UTC


README

一个用于处理Laravel中幂等请求的简单包。

任何使用Replay中间件的路由将检查传入的请求是否符合某些标准,如果符合,则将其缓存24小时,以便后续请求始终接收到相同的响应。

安装

使用Composer安装Replay

composer require kayrunm/replay

使用方法

要开始使用Replay,您只需将Replay中间件附加到您希望允许幂等请求的任何路由即可。例如

use Kayrunm\Replay\Replay;

Route::post('/account/{account}/transfer', [TransferController::class, 'store'])->middleware(Replay::class);

配置

Replay默认即可使用,但您可以根据需要进一步配置它。要开始,使用以下命令发布配置文件

php artisan vendor:publish --tag="replay"

策略

此包使用策略模式来决定哪些请求应该是幂等的,并将它们的响应存储在缓存中。您可以在下面查看这些策略的默认值

如果您决定实现上述任一的自定义策略,只需使用相关策略更新配置文件即可,例如

'strategies' => [

    'caching' => \Acme\CustomCacheStrategy::class,
    
    'idempotency' => \Acme\CustomIdempotencyStrategy::class,
    
],

您还可以自定义用于幂等键的标题(在DefaultIdempotencyStrategy中使用,如果您希望,可以将其更改为使用查询参数),以及幂等请求应在缓存中保持多长时间(在DefaultCacheStrategy中使用)

许可证

Replay是一个开源软件,根据MIT许可证授权。