Что такое REST API и как с ним взаимодействовать в Python

Ответ

REST (Representational State Transfer) — это архитектурный стиль для создания веб-сервисов, который использует стандартные HTTP-методы для взаимодействия между клиентом и сервером. Данные обычно передаются в формате JSON.

Основные HTTP-методы в REST:

  • GET: Получение данных (ресурса).
  • POST: Создание нового ресурса.
  • PUT / PATCH: Обновление существующего ресурса.
  • DELETE: Удаление ресурса.

В Python для работы с REST API чаще всего используется библиотека requests для синхронных запросов или aiohttp для асинхронных.

Пример использования requests:

import requests
import json

# Базовый URL API
BASE_URL = 'https://jsonplaceholder.typicode.com'

# 1. GET-запрос: получение списка постов
try:
    response = requests.get(f'{BASE_URL}/posts/1')
    response.raise_for_status()  # Проверка на HTTP-ошибки (4xx или 5xx)
    post_data = response.json()
    print("GET-запрос успешен:")
    print(json.dumps(post_data, indent=2))

except requests.exceptions.RequestException as e:
    print(f"Ошибка GET-запроса: {e}")

# 2. POST-запрос: создание нового поста
new_post = {
    'title': 'foo',
    'body': 'bar',
    'userId': 1
}

headers = {'Content-type': 'application/json; charset=UTF-8'}

try:
    response = requests.post(f'{BASE_URL}/posts', json=new_post, headers=headers)
    response.raise_for_status()
    created_post = response.json()
    print("nPOST-запрос успешен:")
    print(f"Создан пост с ID: {created_post.get('id')}")

except requests.exceptions.RequestException as e:
    print(f"Ошибка POST-запроса: {e}")

Ключевые аспекты при работе с REST API:

  • Обработка статус-кодов: Анализ ответа сервера (200 OK, 201 Created, 404 Not Found, 500 Internal Server Error).
  • Аутентификация: Передача токенов (JWT, OAuth) или API-ключей, обычно в заголовках (Authorization header).
  • Обработка ошибок: Реализация логики для случаев таймаутов, проблем с сетью и некорректных ответов API.