Reduce Duplicate API Calls in Laravel Using Http::pool()
In Laravel applications, itβs common to fetch data from multiple APIs.
Typical approach:
$user = Http::get('/user');
$orders = Http::get('/orders');
$payments = Http::get('/payments');
π Problem:
- Requests run one-by-one
- Total response time increases
The Better Solution: Http::pool()
Laravel allows multiple requests to run simultaneously.
Basic Usage
$responses = Http::pool(fn ($pool) => [
$pool->get('/user'),
$pool->get('/orders'),
$pool->get('/payments'),
]);
What Happens
Instead of:
Request 1 β Request 2 β Request 3
Laravel runs:
Request 1 Request 2 Request 3
π At the same time.
Real Project Example
Dashboard analytics:
$responses = Http::pool(fn ($pool) => [
'users' => $pool->get('https://api.app.com/users'),
'sales' => $pool->get('https://api.app.com/sales'),
'revenue' => $pool->get('https://api.app.com/revenue'),
]);
Usage:
$responses['sales']->json();