Справочник · модуль 13 «Интернет и API»
Лимит запросов
Сервер разрешает только несколько запросов за короткое время. Если их больше, приходит код 429. Нужно подождать и повторить.
Сравнение из жизни
Как очередь: за один раз пускают не больше трёх человек.
Пример
import time
import requests
URL = "https://api.pythonaz.com/v1/quote"
for i in range(1, 6):
r = requests.get(URL)
if r.status_code == 429:
time.sleep(int(r.headers["Retry-After"]))
r = requests.get(URL)
print(i, r.status_code)Результат
1 200 2 200 3 200 4 200 5 200
Учитель в уроке Сервер защищается от слишком частых запросов. Он разрешает несколько запросов за короткое время. Если их больше, придёт код четыреста двадцать девять. В заголовке Retry-After сказано, сколько секунд подождать. Подождали и повторили запрос.
Запомнить
Лимит запросов — как аттракцион, куда за раз пускают троих. Остальные ждут и пробуют снова.
Частые ошибки новичков на этой теме
Кажется: Ключ API можно хранить в коде
На самом деле: Ключи храним в файле .env, который не попадает в Git.
Тема из урока 13.3 «Ключи и ошибки сети» курса PythonAZ.