Python
Запрос к REST API через requests
Сессия с таймаутом, проверкой статуса и обработкой ошибок — минимум для продакшн-кода.
Код
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
session = requests.Session()
session.headers.update({"User-Agent": "DigitMind/1.0"})
session.mount(
"https://",
HTTPAdapter(max_retries=Retry(total=3, backoff_factor=0.5,
status_forcelist=[429, 500, 502, 503, 504])),
)
def get_json(url, **params):
try:
response = session.get(url, params=params, timeout=(5, 15))
response.raise_for_status()
return response.json()
except requests.exceptions.HTTPError as exc:
print(f"HTTP {exc.response.status_code}: {url}")
except requests.exceptions.RequestException as exc:
print(f"Ошибка запроса: {exc}")
return None
data = get_json("https://api.github.com/repos/django/django")