Przejdź do treści

Obsłuż limity szybkości i błędy serwera

Po odpowiedzi 429 odczekaj, a po tymczasowych awariach serwera ostrożnie ponawiaj bezpieczne operacje.

Zaktualizowano

Obsłuż odpowiedź 429

Żądanie objęte limitem zwraca 429 Too Many Requests, a detail.status ma wartość rate_limit_exceeded. Przed ponowieniem sprawdź nagłówki odpowiedzi:

  • Retry-After podaje minimalny czas oczekiwania w sekundach dla odrzuconego żądania.
  • X-RateLimit-Limit informuje o limicie zasobnika.
  • X-RateLimit-Remaining podaje liczbę pozostałych żądań.
  • X-RateLimit-Reset wskazuje czas resetu zasobnika.

Odczekaj czas wskazany przez Retry-After, a następnie ponów próbę z wykładniczym opóźnieniem i losowym rozproszeniem. Ogranicz liczbę równoległych żądań i umieszczaj zadania w kolejce zamiast wysyłać ich wiele od razu po resecie okna.

Obsłuż błędy serwera

W przypadku odpowiedzi 500 publiczna treść zawiera ogólny błąd i request_id; szczegóły wewnętrznego wyjątku nie są zwracane. Odpowiedź 503 może oznaczać, że wymagana usługa jest tymczasowo niedostępna.

Ponawiaj żądania tylko do odczytu z ograniczonym opóźnieniem. Przed ponowieniem żądania tworzącego, aktualizującego, płatniczego lub innego żądania zmieniającego stan ustal, czy pierwsza próba się powiodła. Limit czasu lub odpowiedź 5xx nie dowodzi, że zmiana się nie powiodła, a natychmiastowe ponowienie może spowodować duplikaty.

Zachowaj dane diagnostyczne

Zapisuj czas, metodę, ścieżkę, status, treść odpowiedzi i X-Request-Id. Nigdy nie zapisuj wartości x-api-key. Zatrzymaj automatyczne ponawianie po niewielkiej, ograniczonej liczbie prób i przekaż błąd do sprawdzenia.