Какие HTTP-запросы (методы) в REST API ты знаешь?

«Какие HTTP-запросы (методы) в REST API ты знаешь?» — вопрос из категории Python, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В REST API я работаю со стандартными HTTP-методами, которые соответствуют операциям CRUD:

  • GET: Получение данных. Например, получение списка пользователей или конкретного пользователя по ID. Это идемпотентный и безопасный метод.
  • POST: Создание нового ресурса. Например, отправка данных формы для создания новой записи. Не является идемпотентным.
  • PUT: Полное обновление существующего ресурса. Ожидается, что клиент отправляет полное представление ресурса. Идемпотентный.
  • PATCH: Частичное обновление ресурса. Клиент отправляет только изменяемые поля. Идемпотентность зависит от реализации сервера.
  • DELETE: Удаление ресурса. Идемпотентный.

Также существуют менее распространенные методы, такие как HEAD (получение только заголовков ответа) и OPTIONS (определение поддерживаемых методов для ресурса).

В Python при использовании библиотеки requests это выглядит так:

import requests

# GET запрос
response = requests.get('https://api.example.com/users/1')

# POST запрос
new_user = {'name': 'Alice', 'email': 'alice@example.com'}
response = requests.post('https://api.example.com/users', json=new_user)

# PUT запрос
updated_data = {'name': 'Alice Smith', 'email': 'alice.smith@example.com'}
response = requests.put('https://api.example.com/users/1', json=updated_data)

# DELETE запрос
response = requests.delete('https://api.example.com/users/1')