βHandling Rate Limits
<?php
use Saloon\Http\Connector;
use Saloon\RateLimitPlugin\Limit;
use Saloon\Traits\Plugins\AcceptsJson;
use Saloon\RateLimitPlugin\Stores\RedisStore;
use Saloon\RateLimitPlugin\Traits\HasRateLimits;
use Saloon\RateLimitPlugin\Contracts\RateLimitStore;
class SpotifyConnector extends Connector
{
use AcceptsJson;
use HasRateLimits;
public function resolveBaseUrl(): string
{
return 'https://api.spotify.com/v1';
}
protected function resolveLimits(): array
{
return [
Limit::allow(100)->everyMinute(),
Limit::allow(1000)->everyDay(),
Limit::allow(5000)->everyMonth(),
];
}
protected function resolveRateLimitStore(): RateLimitStore
{
$redis = new Redis;
$redis->connect('127.0.0.1');
return new RedisStore($redis);
}
}
Installation
Getting Started
Stores
Available Stores
Memory Store
File Store
Redis Store
Predis Store
PSR Cache Store
Laravel Cache Store
Limits
Configuring Limits
Limit Intervals
Custom Names
Custom Prefixes
Custom Thresholds
Sleep
"429: Too Many Attempts" Detection
Handling Rate Limits Being Exceeded
Try/Catch
Sleep
Laravel Job Middleware
Creating your own store
Disabling Rate Limiting
Last updated