Робота з API в Python: requests для початківців

19.04.2026 0 By AdminA

Що таке API і навіщо воно потрібне

API — це спосіб, за допомогою якого одна програма може взаємодіяти з іншою. Якщо говорити простіше, API виступає як “посередник” між вашим кодом і зовнішнім сервісом: ви надсилаєте запит, а у відповідь отримуєте дані або результат виконання дії. Такий підхід часто використовується для роботи з погодою, курсами валют, соціальними мережами, платіжними системами, сервісами доставки, картами й багатьма іншими платформами.

У Python для роботи з API дуже часто використовують бібліотеку requests. Вона проста, зрозуміла для початківців і дозволяє виконувати HTTP-запити без зайвої складності. Саме тому requests — один із найкращих способів почати знайомство з інтеграціями в Python.

Що потрібно знати перед початком

Перед роботою з API варто розуміти кілька базових термінів:

  • HTTP-запит — звернення до сервера з певною дією.
  • GET — запит для отримання даних.
  • POST — запит для надсилання даних.
  • Response — відповідь сервера.
  • JSON — популярний формат обміну даними між сервісами.

У більшості сучасних API відповідь приходить саме у форматі JSON. Це зручно, тому що JSON легко перетворити на словник Python і далі працювати з даними як із звичайними структурами мови.

Встановлення бібліотеки requests

Якщо requests ще не встановлена, це можна зробити через менеджер пакетів pip:

pip install requests

Після цього бібліотека стане доступною у вашому проєкті. Імпортувати її дуже просто:

import requests

Перший GET-запит

Найпростіший сценарій — отримати дані з API. Наприклад, звернемося до публічного сервісу, який повертає тестові дані у форматі JSON.

import requests
response = requests.get('https://jsonplaceholder.typicode.com/todos/1')
print(response.status_code)
print(response.text)

У цьому прикладі метод get() надсилає запит на адресу сервера. Змінна response містить об’єкт відповіді, а status_code показує, чи успішно пройшов запит. Якщо все добре, ви побачите код 200.

Поле text повертає сирий текст відповіді. Якщо сервіс віддав JSON, ви побачите його як рядок.

Робота з JSON у Python

Щоб зручніше працювати з відповіддю, її можна перетворити на Python-структуру за допомогою методу json():

import requests
response = requests.get('https://jsonplaceholder.typicode.com/todos/1')
data = response.json()
print(data)
print(data['title'])

Після виклику json() ви отримуєте словник Python. Це означає, що до окремих полів можна звертатися через ключі, наприклад data['title'] або data['completed']. Такий спосіб набагато зручніший за ручний розбір тексту.

Перевірка статусу відповіді

Під час роботи з API важливо завжди перевіряти результат запиту. Не кожен запит завершується успішно: сервер може бути недоступним, URL може бути неправильним або сервіс може повернути помилку доступу.

Найпростіший варіант — перевіряти код статусу:

import requests
response = requests.get('https://jsonplaceholder.typicode.com/todos/1')
if response.status_code == 200:
    print('Запит успішний')
else:
    print('Сталася помилка:', response.status_code)

Ще зручніше використовувати метод raise_for_status(). Він автоматично викликає помилку, якщо статус відповіді неуспішний.

import requests
response = requests.get('https://jsonplaceholder.typicode.com/todos/1')
response.raise_for_status()
print(response.json())

Це корисно, коли ви хочете швидко знайти проблему в коді й не обробляти помилкові відповіді вручну.

Передача параметрів у GET-запиті

API часто приймають параметри в URL. У requests для цього зручно використовувати аргумент params.

import requests
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/todos', params=params)
print(response.url)
print(response.json())

У цьому прикладі в запит додається параметр userId=1. Бібліотека сама сформує правильний URL. Це набагато зручніше й безпечніше, ніж збирати адресу вручну через конкатенацію рядків.

Надсилання даних через POST

Коли потрібно створити новий запис або передати дані на сервер, використовується POST. У requests для цього є метод post().

import requests
payload = {
    'title': 'Новий запис',
    'body': 'Текст повідомлення',
    'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=payload)
print(response.status_code)
print(response.json())

Зверніть увагу на аргумент json=payload. Він автоматично відправляє дані у форматі JSON. Це дуже зручно, якщо API очікує саме такий формат.

Заголовки запиту та авторизація

Деякі API вимагають спеціальні заголовки. Наприклад, може бути потрібен токен доступу або вказівка формату даних. У requests заголовки передаються через аргумент headers.

import requests
headers = {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Accept': 'application/json'
}
response = requests.get('https://api.example.com/data', headers=headers)

У реальних сервісах токени й ключі доступу потрібно зберігати обережно та не вставляти їх прямо в публічний код. Для навчальних прикладів достатньо розуміти сам принцип: заголовки допомагають серверу зрозуміти, хто звертається і в якому форматі потрібна відповідь.

Обробка помилок

Під час роботи з API корисно передбачати можливі проблеми. Наприклад, мережа може бути недоступна, сервер — не відповідати, а формат даних — не збігатися з очікуваним. Для цього варто використовувати try/except.

import requests
try:
    response = requests.get('https://jsonplaceholder.typicode.com/todos/1', timeout=5)
    response.raise_for_status()
    data = response.json()
    print(data)
except requests.exceptions.RequestException as e:
    print('Помилка запиту:', e)

Параметр timeout також дуже корисний. Якщо сервер довго не відповідає, програма не зависатиме надовго, а завершить запит із помилкою очікування.

Практичний приклад: отримуємо список даних

Уявімо, що потрібно вивести назви всіх завдань користувача. Ось простий приклад:

import requests
response = requests.get('https://jsonplaceholder.typicode.com/todos', params={'userId': 1})
todos = response.json()
for todo in todos:
    print(todo['id'], todo['title'])

Тут ми отримуємо список об’єктів, а потім проходимося циклом for. Такий підхід часто використовується в реальних проєктах, коли API повертає багато елементів одразу.

Поради для початківців

  • Завжди перевіряйте status_code або використовуйте raise_for_status().
  • Додавайте timeout, щоб не чекати відповідь безмежно довго.
  • Починайте з простих GET-запитів, а вже потім переходьте до POST, PUT і DELETE.
  • Працюйте з JSON через response.json(), а не через ручний парсинг тексту.
  • Не зберігайте секретні ключі прямо в коді, який плануєте показувати іншим.

Висновок

Бібліотека requests — це один із найпростіших і найзручніших способів працювати з API в Python. Вона допомагає надсилати GET і POST-запити, передавати параметри, додавати заголовки, отримувати JSON і обробляти помилки. Для початківця цього більш ніж достатньо, щоб почати створювати корисні інтеграції та взаємодіяти з реальними сервісами.

Якщо ви щойно починаєте знайомство з API, найкраща стратегія — тренуватися на простих прикладах: спершу отримати дані, потім відфільтрувати їх, а далі спробувати надіслати власний запит. Саме так поступово формується впевнене розуміння роботи з вебсервісами в Python.

Comments

comments