nhatnathando/laravel-api-replay
最新稳定版本:v1.0.5
Composer 安装命令:
composer require --dev nhatnathando/laravel-api-replay
包简介
Log, store, and replay Laravel API requests.
README 文档
README
Record incoming HTTP requests and responses, store them efficiently, and replay any request accurately for debugging and comparison via a modern Dashboard.
✨ Features
- ⚡ Middleware Recording: Automatically capture Request/Response details.
- 🖥️ Dashboard UI: Visual interface to browse logs and trigger replays (default at
/api-replay). - 🛡️ Production Safety: Automatic DB Rollback for dry-run replays to keep your data safe.
- 🔐 Sensitive Data Masking: Automatically masks passwords and sensitive headers.
- 🎯 Accurate Replay: Reconstructs requests using the Laravel HTTP client.
- 🏗️ Artisan Command: Still supports
php artisan replay:request {uuid}.
📦 Installation
- Install via composer:
composer require nhatnathando/laravel-api-replay
- Publish configuration, migrations, and UI views:
php artisan vendor:publish --tag="api-replay-config" php artisan vendor:publish --tag="api-replay-migrations" php artisan vendor:publish --tag="api-replay-views"
- Run migrations:
php artisan migrate
🛠 Usage
1. Register Middleware
Add the middlewares to your app/Http/Kernel.php (or bootstrap/app.php for Laravel 11+):
protected $middlewareGroups = [ 'api' => [ \Storage\ApiReplay\Http\Middleware\RecordApiRequest::class, // Optional: Add this to enable automatic DB rollback during Dry Run replays \Storage\ApiReplay\Http\Middleware\SimulationMiddleware::class, ], ];
2. Dashboard UI
Access the dashboard at /api-replay in your browser. You can:
- View all recorded API calls.
- Compare original response vs replay response.
- Enable Dry Run Mode to simulate the request without persisting DB changes.
3. Programmatic Safety
Use the ApiReplay helper to skip side-effects (like sending real emails) during a replay:
use Storage\ApiReplay\Support\ApiReplay; if (ApiReplay::isDryRun()) { // Skip sending real SMS or calling external 3rd party APIs return; }
⚙️ Configuration
Check config/api-replay.php for options:
enabled: Toggle recording.log_response: Enable/disable response body logging.sensitive_headers: List of headers to mask.sensitive_fields: List of JSON fields to mask.
🧪 Testing
./vendor/bin/phpunit
If you find this package useful, please consider supporting my work:
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-04-03