kayrunm / replay
一个用于Laravel中幂等请求的简单包。
1.1
2023-03-30 14:47 UTC
Requires
- php: ^7.4|^8.0|^8.1
- illuminate/http: ^8.0|^9.0|^10.0
- illuminate/routing: ^8.0|^9.0|^10.0
- illuminate/support: ^8.0|^9.0|^10.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.9.5
- mockery/mockery: ^1.5
- orchestra/testbench: ^6.24|^8.1.1
- phpstan/phpstan: ^0.12.2|^1.10
- phpunit/phpunit: ^8.5|^9.6
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许可证授权。