Повторы без дублей: Idempotency-Key
Сеть рвётся: запрос ушёл, а ответа нет. Повтор без защиты создаст второй тикет. Передайте у POST заголовок Idempotency-Key — повтор с тем же ключом вернёт первый ответ, а запрос не выполнится второй раз.
curl https://app.deskus.ru/api/v1/tickets \
-H "Authorization: Bearer $DESKUS_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: form-7f3a9c21" \
-d '{ "message": "Нужна консультация по помолу", "client": { "email": "maria@example.com" } }'Как это работает
Повтор | Ответ |
|---|---|
Тот же ключ, то же тело, тот же адрес | Первый ответ целиком, с заголовком |
Тот же ключ, другое тело |
|
Первый запрос ещё выполняется |
|
Первый закончился ошибкой 5xx | Ключ свободен — повтор выполнится заново |
Первый закончился ошибкой 4xx | Та же ошибка: исправьте запрос и возьмите новый ключ |
Какой ключ брать
Строка от 1 до 255 печатных символов ASCII: UUID, номер заказа, id заявки формы.
Один ключ — одно действие. Хороший ключ рождается вместе с событием в вашей системе:
order-4821,lead-90155.Ключ помнится сутки. Ключи разных ключей API и приложений не пересекаются.
Без заголовка каждый POST выполняется заново. У GET, PATCH и DELETE заголовок не нужен.
