Главная · Каталог задач · Идемпотентный API без дублей

Готовый сценарий

Идемпотентный API без дублей

Клиент повторяет запрос после таймаута, не зная, успел ли сервер выполнить действие. Если обработчик просто создаёт новую запись, появляются дубли. Модель добавит ключ идемпотентности, атомарно закрепит его за операцией и вернёт прежний результат при повторе с тем же содержимым.

Попробуйте прямо здесь Отвечает Gemma 3 12B — модель подобрал сервис

Открыть в полном чате

  • Доступ без VPN
  • Русский интерфейс
  • Оплата рублями по факту

Зачем

Зачем это нужно

01

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

02

Защищает запись уникальным ограничением от параллельных одинаковых запросов

03

Возвращает сохранённый статус и ответ, если первый вызов уже завершился

Вопросы

Частые вопросы

Кто генерирует ключ идемпотентности?

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

Достаточно ли проверить наличие записи перед созданием?

Нет: два параллельных запроса могут оба не увидеть запись и затем создать по одной. Нужна атомарная защита базы — уникальное ограничение или блокировка — и обработка конфликта. Модель соберёт транзакцию в вашем диалекте и не оставит гонку между SELECT и INSERT.

Как долго хранить ключи?

Дольше максимального окна повторов клиента и внешней операции, но не бесконечно без причины. Срок зависит от предметной области: платёж могут повторить спустя часы после ответа поддержки. Модель предложит очистку и архивирование, сохранив аудит там, где его требуют правила бизнеса.

Рядом

Дальше — весь каталог задач: поиск по названию, темы и фильтры.

Нужно больше

Весь Енотик — в одном окне

Полный чат: история, вложения, базы знаний, картинки и видео. Один баланс на все модели, оплата рублями по факту.