---
title: "Limity požiadaviek (rate limiting) — Google Places | Roundly"
description: "Každé odchádzajúce volanie sa riadi limitom svojho Google API — prispôsobí sa odpovediam 429, ladí sa cez env a vie rýchlo zlyhať."
url: https://roundly-consulting.com/sk/open-source/navody/google-places-for-laravel/limity-poziadaviek
language: sk
---

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

[Google Places for Laravel](https://roundly-consulting.com/sk/open-source/navody/google-places-for-laravel.md)

# Limity požiadaviek (rate limiting)

Každé odchádzajúce volanie prechádza cez http-client-rate-limits-for-laravel, s vlastným limitom pre každé API pod kľúčom google-places:{surface}:{owner}. Požiadavky predvolene čakajú, kým sa okno uvoľní; so zapnutým adaptive (predvolene) sa limiter sám doladí podľa Retry-After z odpovede 429. Každé API má predvolene limit 600 požiadaviek za minútu.

| API (surface) | Volania | Kľúč hosta |
| --- | --- | --- |
| `places` | autocomplete, details, textSearch, nearbySearch, findPlace, textSearchPaginated, nearbySearchPaginated, photoUri, photoContents (photo()) | `hosts.places` |
| `routes` | distance, computeMatrix, matrix() | `hosts.routes` |
| `geocoding` | geocode, geocodeAddress | `hosts.geocoding` |

Každé API doladíte v config/google-places.php (pozrite Konfigurácia) alebo cez env:

```bash
GOOGLE_PLACES_GEOCODING_RATELIMIT=300
GOOGLE_PLACES_GEOCODING_RATELIMIT_PER=minute
GOOGLE_PLACES_ROUTES_RATELIMIT_ENABLED=false   # send this surface unthrottled
GOOGLE_PLACES_PLACES_RATELIMIT_MAX_WAIT=2000    # fail fast (ms) instead of pacing
```

rate\_limits.owner je spoločný pre všetky API, takže viacero aplikácií zdieľajúcich jeden kľúč Google môže mať každá vlastný limit. photoUrl() (bez požiadavky) a check() sa nikdy neobmedzujú. Každý kľúč sa číta pod plným názvom, takže preklep v per alebo nezmyselný limit vyhodí InvalidConfigurationException s názvom kľúča, napríklad google-places.rate\_limits.places.limit — nikdy sa potichu nepoužije okno minute.

## Rýchle zlyhanie

Ak má API nastavené rýchle zlyhanie (max\_wait) a čakanie by ho prekročilo, volanie vyhodí RateLimitExceededException — ide o PlacesException, takže existujúce bloky catch (PlacesException) fungujú ďalej — s vlastnosťou $e->surface a cez kontrakt HasRetryAfter z package toolkitu aj s $e->retryAfterSeconds():

```php
use RoundlyConsulting\PackageToolkit\Contracts\HasRetryAfter;

try {
    GooglePlaces::textSearch('coffee');
} catch (PlacesException $e) {
    if ($e instanceof HasRetryAfter) {
        return response('Slow down', 429, ['Retry-After' => $e->retryAfterSeconds()]);
    }

    throw $e;
}
```

```php
use RoundlyConsulting\GooglePlaces\Exceptions\RateLimitExceededException;

catch (RateLimitExceededException $e) {
    $e->surface;              // "places", "routes" or "geocoding"
    $e->retryAfterSeconds();  // seconds until the window frees up
    $e->getCode();            // 429
}
```

## 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/google-places-for-laravel.md)
