Ответ
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.