← До фільтрів та технологій

← До списку лабораторних по Python

Python Лабораторна 7: Запит до публічного API через requests

Технологія: Python

Номер лабораторної: 7 · Рівень: middle

Тема: HTTP клієнт і REST API

Повний опис / сценарій лабораторної:

Meta: навчитися робити HTTP запити, перевіряти коди статусу і обробляти JSON.



Krok 1. Активувати середовище і встановити requests якщо потрібно.

Komandi: cd ~/python_lab1; source .venv/bin/activate; pip install requests



Krok 2. Створити файл src/app/api7.py.

Komanda: cd src; touch app/api7.py



Krok 3. Додати функцію яка виконує GET запит до простого API.

Komanda: printf "import requests

BASE = "https://httpbin.org"

def get_ip() -> str:
    resp = requests.get(f"{BASE}/ip", timeout=5)
    resp.raise_for_status()
    return resp.json()["origin"]

if __name__ == "__main__":
    print(get_ip())
" > app/api7.py



Krok 4. Запустити модуль і переконатися що отримано IP.

Komанда: export PYTHONPATH=$(pwd); python app/api7.py



Krok 5. Додати функцію яка робить POST з JSON.

Komanda: printf "import requests

BASE = "https://httpbin.org"

def echo_payload(data: dict) -> dict:
    resp = requests.post(f"{BASE}/post", json=data, timeout=5)
    resp.raise_for_status()
    return resp.json()["json"]

if __name__ == "__main__":
    print(echo_payload({"lab": 7, "ok": True}))
" > app/api7_post.py



Krok 6. Запустити echo_payload і перевірити вивід.

Komanda: python app/api7_post.py



Krok 7. Додати обробку timeouts через конструкцію try except.

Poyasnennya: використати requests.exceptions.Timeout.



Krok 8. Додати простий ретрай у разі тимчасової помилки.

Poyasnennya: цикл з двома спробами і паузою через time.sleep.



Krok 9. Занотувати як винести базову URL і таймаути у конфіг.



Krok 10. Mini zvit.

Zavdannya: опиши як би ти організував клієнт до внутрішнього сервісу з аутентифікацією.