PHP code example of grazulex / laravel-api-idempotency
1. Go to this page and download the library: Download grazulex/laravel-api-idempotency library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
grazulex / laravel-api-idempotency example snippets
use Grazulex\ApiIdempotency\Attributes\Idempotent;
use Grazulex\ApiIdempotency\Attributes\IdempotentExcept;
#[Idempotent]
class PaymentController extends Controller
{
public function store(Request $request) { /* ... */ }
#[IdempotentExcept]
public function index() { /* ... */ } // Excluded
}
use Grazulex\ApiIdempotency\Facades\Idempotency;
// Check if already processed
if ($cached = Idempotency::get($key)) {
return $cached->toResponse();
}
// Store manually
Idempotency::store($key, response()->json($data, 201));
// Skip caching (e.g., for validation errors)
Idempotency::skip();
use Grazulex\ApiIdempotency\Events\IdempotentRequestProcessed;
use Grazulex\ApiIdempotency\Events\IdempotentRequestReplayed;
use Grazulex\ApiIdempotency\Events\IdempotentConflictDetected;
use Grazulex\ApiIdempotency\Events\IdempotentPayloadMismatch;
use Grazulex\ApiIdempotency\Facades\Idempotency;
public function test_idempotency(): void
{
Idempotency::fake();
// Your test code...
Idempotency::assertStored('expected_key');
Idempotency::assertReplayed('expected_key');
Idempotency::assertStoredCount(5);
}