Встречается на 2% собеседований по Python

Как можно сделать POST запрос идемпотентным

Идемпотентность POST-запроса означает, что повторные одинаковые запросы не изменяют состояние системы после первого успешного выполнения. Вот способы достичь этого:

  1. Использование уникального идентификатора запроса (idempotency-key)
    Клиент генерирует уникальный ключ и отправляет его в заголовке. Сервер сохраняет результат первого запроса и возвращает его при повторных запросах с тем же ключом.
python
import requests

idempotency_key = "unique_key_123"
response = requests.post(
    "https://api.example.com/resource",
    json={"data": "value"},
    headers={"Idempotency-Key": idempotency_key}
)
  1. Проверка существования ресурса
    Перед созданием проверять, существует ли ресурс с такими же данными. Если да — возвращать существующий.

  2. Семантические идентификаторы
    Использовать клиентские ID для ресурсов (например, client_id в теле запроса), чтобы сервер мог определить дубликаты.

Идемпотентность особенно важна для платежных систем и критичных операций, где повторная отправка запроса не должна создавать дубликаты.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы