← До списку лабораторних по Python
Повний опис / сценарій лабораторної:
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: опиши як би ти організував клієнт до внутрішнього сервісу з аутентифікацією.