NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
HTTP Client Rate Limits for Laravel

Retry-After a opakovanie pri 429

Balík rozkladá odchádzajúce požiadavky proaktívne. Ak chcete reagovať aj na signály servera, použite ->adaptive() alebo middleware spojte s ->retry() od Laravelu a metódou RateLimits::retryAfter(), ktorá rešpektuje odpoveď 429 Too Many Requests / Retry-After:

use RoundlyConsulting\HttpClientRateLimits\Facades\RateLimits;

Http::rateLimit(RateLimits::perMinute(60))
    ->retry(3, throw: false, sleepMilliseconds: fn ($attempt, $exception) =>
        (RateLimits::retryAfter($exception) ?? $attempt) * 1000)
    ->get('https://api.example.com/things');

Vlastné čítanie Retry-After

RateLimits::retryAfter() prijíma Response alebo RequestException, spracuje obe formy hlavičky (počet sekúnd aj HTTP dátum; dátum v minulosti dá 0), výsledok obmedzí na jeden deň (86 400 s) a vráti null, ak hlavička chýba alebo sa nedá prečítať:

use RoundlyConsulting\HttpClientRateLimits\Facades\RateLimits;

$response = Http::get('https://api.example.com/things');

if ($response->status() === 429) {
    $seconds = RateLimits::retryAfter($response); // ?int: "120" or an HTTP-date, null when absent
}

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.