Python

Запрос к REST API через requests

Algonexys · 07.08.2026 · 👁 0

Сессия с таймаутом, проверкой статуса и обработкой ошибок — минимум для продакшн-кода.

Код

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")