Вступить в клуб →
лёгкаявопросREST API и интеграции

Повторный POST /orders создал второй заказ

Мобильное приложение отправило POST /orders, не дождалось ответа по таймауту сети и повторило запрос. В базе появилось два одинаковых заказа, клиент оплатил оба.

Что делает повторную отправку такого запроса безопасной?

  • Отключить автоматические ретраи в мобильном приложении: при единственной попытке отправки дублей не возникает по построению
  • Заменить POST на GET: по спецификации GET безопасен, состояние не меняет и потому не создаёт дублей при повторе
  • Отлавливать дубли эвристикой на сервере: считать повтором заказ того же клиента с той же суммой, созданный в течение минуты
  • Клиент передаёт ключ идемпотентности, сервер сохраняет результат по этому ключу и на повтор возвращает уже созданный заказ

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела