Перейти до вмісту

Обробка обмежень частоти й помилок сервера

Зачекайте після відповіді 429 й обережно повторюйте безпечні операції після тимчасового збою сервера.

Оновлено

Обробіть відповідь 429

Запит, обмежений за частотою, отримує 429 Too Many Requests, а detail.status має значення rate_limit_exceeded. Перш ніж повторювати запит, прочитайте заголовки відповіді:

  • Retry-After задає мінімальний час очікування в секундах для відхиленого запиту.
  • X-RateLimit-Limit показує ліміт групи запитів.
  • X-RateLimit-Remaining показує кількість запитів, що залишилися.
  • X-RateLimit-Reset показує час скидання ліміту групи.

Зачекайте час, вказаний у Retry-After, а потім повторюйте запит зі зростанням затримки та невеликим випадковим зсувом. Зменште кількість одночасних запитів і поставте роботу в чергу, щоб не надсилати багато запитів одразу після скидання вікна.

Обробіть помилки сервера

За відповіді 500 публічне тіло містить загальну помилку й request_id, але не внутрішні подробиці винятку. 503 може вказувати на тимчасову недоступність необхідного сервісу.

Повторюйте запити тільки на читання з обмеженою затримкою. Перед повтором створення, оновлення, платежу чи іншого запиту, який змінює стан, з’ясуйте, чи виконалася перша спроба. Завершення часу очікування або відповідь 5xx не доводять, що зміна не відбулася; негайний повтор може подвоїти дію.

Збережіть діагностичні дані

Запишіть час, метод, шлях, статус, тіло відповіді й X-Request-Id. Ніколи не записуйте значення x-api-key у журнал. Після невеликої обмеженої кількості спроб зупиніть автоматичні повтори й передайте збій на розгляд.