Продвинутый
Как сделать POST идемпотентным?
По стандарту POST не идемпотентен (два клика по кнопке "Оплатить" создадут два списания).
Чтобы это исправить, используют Idempotency-Key (Ключ идемпотентности):
1. Клиент генерирует уникальный UUID и шлет его в заголовке Idempotency-Key.
2. Сервер получает запрос, проверяет ключ в БД/Кэше.
3. Если ключа нет — выполняет операцию, сохраняет результат и ключ.
4. Если клиент повторяет запрос с тем же ключом (из-за лага сети) — сервер не выполняет операцию заново, а просто отдает сохраненный ранее ответ.