Идемпотентность
Идемпотентность позволяет безопасно повторять запись: если запрос не дошёл или ответ потерялся из-за сбоя сети, можно повторить его тем же ключом, не боясь записать данные дважды.
Как это работает
Передайте в запросе на запись заголовок Idempotency-Key с уникальным значением
(например, UUID):
curl -X POST "https://app.coverse.team/v1/documents/$DOCUMENT_ID/values/append" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 9a1c2d3e-4f5a-6b7c-8d9e-0f1a2b3c4d5e" \
-d '{"range":"A1","values":[["Заявка",1500]]}'
Если запрос с этим ключом уже был выполнен, сервер вернёт исходный результат и не станет записывать данные повторно.
Где применяется
Заголовок поддерживают операции записи:
PUT /v1/documents/{document}/values/{range}POST .../values/batchUpdatePOST .../values/appendPOST .../values/clearPOST .../documents/{document}/sheets(создание листа)
Рекомендации
- Генерируйте новый ключ на каждую логическую операцию (например, на каждую заявку из бота).
- При повторе после сбоя используйте тот же ключ, что и в исходной попытке.
- Ключ должен быть уникальным и труднопредсказуемым — подойдёт UUID.