Requests – бібліотека python для надсилання HTTP запитів. Має зрозумілий та елегантний синтаксис, що дозволяє зосередитися на логіці взаємодії з API.

Встановлення Requests в оточення:

pip install requests

Для прикладів запитів я буду використовувати демо API бронювання:

https://restful-booker.herokuapp.com/

Відправляю перший запит до сервісу, health check:

import requests

response = requests.get('https://restful-booker.herokuapp.com/ping')

print(f'ping status code: {response.status_code}')
# ping status code: 201

print(f'ping header Content-Type: {response.headers["Content-Type"]}')
# ping header Content-Type: text/plain; charset=utf-8

print(f'ping body: {response.text}')
# ping body: Created

Код каже сам за себе. Метод get повертає об’єкт response, через який можна отримати доступ до status code, headers (у вигляді python dict), body відповіді.

Тепер зроблю запит POST для отримання токену. Документація запиту:

Код запиту з використанням requests:

# create token
url = 'https://restful-booker.herokuapp.com/auth'

headers = {
  'Content-Type': 'application/json'
}

data = {
    'username': 'admin',
    'password': 'password123'
}

response = requests.post(url=url, headers=headers, data=json.dumps(data))

response_json = response.json()
print(f'response json: {type(response_json)} {response_json}')
# response json: <class 'dict'> {'token': '122ca34ed10a240'}

token = response_json['token']
print(f'token: {token}')
# token: 122ca34ed10a240

  • для створення headers та body використовую python dict
  • метод requests.post приймає іменовані аргументи url, headers, data для формування запиту
  • словник data, який містить в собі тіло request, за допомогою методу dumps модуля json серіалізую в json строку
  • виклик методу json об’єкта response, повертає python dict тіла відповіді, з якого вже по ключу token отримую токен

Документація бібліотеки доступна за посиланням:

Requests: HTTP for Humans™


Мітки: