Dry-run и идемпотентность¶
Write-операции в SDK должны быть предсказуемыми: один и тот же пользовательский ввод строит один и тот же payload, а повторный реальный вызов можно защитить idempotency_key, если endpoint это поддерживает.
Dry-run¶
dry_run=True не вызывает transport. Метод валидирует аргументы, строит payload и возвращает preview-модель. Это полезно для интерфейсов подтверждения, batch-задач и consumer-тестов.
Ключевое правило: dry-run не должен строить “похожий” payload. Он обязан использовать тот же путь сериализации, что и реальный вызов. Иначе preview перестанет быть надёжной проверкой.
Идемпотентность¶
idempotency_key нужен для повторяемых write-вызовов: retry после сетевого сбоя, перезапуск фоновой задачи, повторное нажатие пользователем. SDK передаёт ключ в transport-layer только для реального write-вызова; dry-run не должен обращаться в сеть.
Разделение поведения¶
| Режим | Transport | Payload | Возврат |
|---|---|---|---|
dry_run=True |
Не вызывается | Строится полностью | Preview/result model |
dry_run=False без ключа |
Вызывается один раз | Строится полностью | Upstream result model |
dry_run=False с ключом |
Вызывается с idempotency metadata | Строится полностью | Upstream result model |
Практический сценарий описан в how-to по продвижению. Разрешённые overrides перечислены в reference по конфигурации.