---
title: "Pomenované profily limitov — HTTP Client Rate Limits | Roundly"
description: "Definujte opakovane použiteľné limity raz v konfigurácii a odkazujte na ne menom — Http::rateLimit('github') — so všetkými voľbami."
url: https://roundly-consulting.com/sk/open-source/navody/http-client-rate-limits-for-laravel/pomenovane-profily
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[HTTP Client Rate Limits for Laravel](https://roundly-consulting.com/sk/open-source/navody/http-client-rate-limits-for-laravel.md)

# Pomenované profily limitov

Opakovane použiteľné limity definujete raz v config/http-client-rate-limits.php a odkazujete na ne menom odkiaľkoľvek:

```php
// config/http-client-rate-limits.php
'limiters' => [
    'github' => ['rate' => 5, 'per' => 'second'],
    'billing' => ['rate' => 100, 'per' => 'minute', 'by' => 'tenant-1', 'jitter' => 50],
],
```

```php
use RoundlyConsulting\HttpClientRateLimits\Facades\RateLimits;

Http::rateLimit('github')->get('https://api.github.com/user');

// Re-key a profile per owner at the call site:
Http::rateLimit('github', by: 'acct-1')->get('https://api.github.com/user');

// The same profile outside the HTTP client:
$limit = RateLimits::profile('github');
$limit->remaining();
```

Odkaz na nedefinované meno vyhodí UnknownLimiterProfileException.

Profil bez by má kľúč podľa vlastného mena, takže každý profil má vlastný limit aj vlastné spomalenie od servera — keď jedno API požiada o spomalenie, ostatné tým nebrzdí. Ak majú profily zdieľať jeden limit, dajte im rovnaké by.

## Kľúče profilu

Každý profil prijíma rate a per a voliteľné kľúče by, trim, max\_wait, jitter a adaptive. Nenastavený kľúč — vynechaný, null alebo prázdny ('', len medzery) — má túto predvolenú hodnotu:

| Kľúč | Predvolené | Účel |
| --- | --- | --- |
| `rate` | 1 | Počet povolených požiadaviek v okne. |
| `per` | minute | Okno: second, minute, hour alebo day. |
| `by` | null (meno profilu) | Kľúč vlastníka, pod ktorým sa limit sleduje. Profily s rovnakým by zdieľajú jeden limit. |
| `trim` | false | Po každej povolenej požiadavke odstráni záznamy vlastníka staršie ako okno. |
| `max_wait` | null | Maximálne čakanie v ms; dlhšie čakanie vyhodí RateLimitExceededException. |
| `jitter` | 0 | Najviac toľko ms náhodného čakania navyše — čakanie nikdy neskráti. |
| `adaptive` | false | Prispôsobenie podľa hlavičiek Retry-After / X-RateLimit-\* v odpovedi. |

Profil so všetkými kľúčmi:

```php
'limiters' => [
    'openai' => [
        'rate' => 60,          // requests allowed in the window
        'per' => 'minute',     // second | minute | hour | day
        'by' => 'openai',      // owner key
        'trim' => true,        // drop hits older than the window after each request
        'max_wait' => 10_000,  // ms: throw RateLimitExceededException above this wait
        'jitter' => 100,       // ms: up to this much random extra wait
        'adaptive' => true,    // honour Retry-After / X-RateLimit-* response headers
    ],
],
```

## Prísne hodnoty

Každá hodnota profilu sa pri jeho načítaní číta prísne, nikdy sa neháda:

- rate, max\_wait a jitter prijmú celé číslo alebo celočíselný reťazec ('5'); 'five', '5.5' či '1e3' vyhodí InvalidConfigurationException, rovnako ako záporné max\_wait alebo jitter. rate pod 1 vyhodí InvalidLimitException.
- per prijme second, minute, hour alebo day (presne) alebo Timespan; preklep ako minutes či nepodporované week vyhodí InvalidTimespanException.
- by prijme reťazec; hodnota, ktorá nie je reťazec, vyhodí InvalidConfigurationException.
- trim a adaptive prijmú true/false, 1/0, on/off alebo yes/no; čokoľvek iné vyhodí InvalidConfigurationException.

Každá chyba uvádza celý kľúč, napríklad http-client-rate-limits.limiters.github.adaptive. Nenastavený kľúč použije predvolenú hodnotu z tabuľky vyššie — prázdne max\_wait teda znamená žiadny strop, nikdy nie okamžité zlyhanie s limitom 0 ms.

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/http-client-rate-limits-for-laravel.md)
