lidongyooo/laravel-idempotent

laravel idempotent
2,203 13
Install
composer require lidongyooo/laravel-idempotent
Latest Version:1.0.1
PHP:>=7.0.0
License:MIT
Last Updated:Jul 6, 2021
Links: GitHub  ·  Packagist
Maintainer: lidongyooo

Laravel-Idempotent

基于 Laravel 的接口幂等组件

安装

$ composer require lidongyooo/laravel-idempotent -vvv

配置

  1. 在 config/app.php 注册 ServiceProvider (Laravel 5.5 + 无需手动注册)
'providers' => [
    // ...
    Lidongyooo\Idempotent\IdempotentServiceProvider::class,
],
  1. 创建配置文件
$ php artisan vendor:publish --tag="laravel-idempotent"
  1. 查看应用根目录下的 config/idempotent.php

使用

中间件 Lidongyooo\Idempotent\IdempotentMiddleware,别名 idempotent

// ...
Route::post('/test', function () {
    return 'test';
})->middleware('idempotent');

//如果你想强制缓存响应
Route::post('/test', function () {
    return 'test';
})->middleware('idempotent:true');

或者你可以将它加入到指定路由中间件组中

protected $middlewareGroups = [
    // ...
    'api' => [
        'idempotent',
        'throttle:api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
];

返回值

  • 重复请求将会返回异常
abort(425, 'Your request is still being processed.');
  • 已缓存的请求将添加响应头
$response->header($this->config['back_header_name'], $idempotentKey);

更多详细介绍请查看 配置文件

Related Packages

myerscode/laravel-api-response

A fluent helper and facade to ensure consistent, idempotent API responses in Lar...

35,395 4
kayrunm/replay

A simple package for idempotent requests in Laravel.

2,299 5
webrek/laravel-idempotency

Safe request retries for Laravel APIs via the Idempotency-Key header.

1,035 0
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

637,827,751 9,703
laravel/framework

The Laravel Framework.

589,172,971 34,950

Version History

Version Released PHP Laravel License
1.0.1 >=7.0.0 >=5.0.0 MIT
1.0.0 >=7.0.0 >=5.0.0 MIT