Download the PHP package missionx-co/laravel-prevent-duplicate-request without Composer
On this page you can find all versions of the php package missionx-co/laravel-prevent-duplicate-request. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download missionx-co/laravel-prevent-duplicate-request
More information about missionx-co/laravel-prevent-duplicate-request
Files in missionx-co/laravel-prevent-duplicate-request
Package laravel-prevent-duplicate-request
Short Description A Laravel package that prevents duplicate API requests using Idempotency keys or dynamically generated keys based on request URL and input.
License MIT
Homepage https://github.com/missionx-co/laravel-prevent-duplicate-request
Informations about the package laravel-prevent-duplicate-request
Laravel Prevent Duplicate Requests
A Laravel package to prevent duplicate API requests using either Idempotency Keys or dynamically generated keys based on the request URL and input.
Installation
Install the package via Composer:
Publish the configuration file
Usage
Middleware Setup
Add the preventDuplicateRequests
middleware to your API middleware group
Laravel 11
Laravel 10
Key Generation Algorithms
To prevent duplicate API requests, you can choose between two algorithms:
-
Idempotency Key: Use
\MissionX\LaravelPreventDuplicateRequest\UniqueKeyAlgorithms\IdempotencyKey::class
to uniquely identify and deduplicate requests, ensuring the same key results in the same response. This requires the client to send an Idempotency-Key header with each request. - Request Fingerprint:
Use
\MissionX\LaravelPreventDuplicateRequest\UniqueKeyAlgorithms\RequestFingerprintGenerator::class
to automatically generate a unique key based on the request URL and input. This is useful when you don't want to rely on the client to provide a key.
Configuring the Algorithm
Set the desired key generation algorithm in the configuration file (config/prevent-duplicate-request.php
):
All versions of laravel-prevent-duplicate-request with dependencies
spatie/laravel-package-tools Version ^1.16
illuminate/contracts Version ^10.0||^11.0