Поделиться через


Повторяемость запросов

Область применения: Email ACS (API отправки Email), комнаты ACS

API POST не являются идемпотентными по определению. Чтобы заставить их вести себя идемпотентно, мы поддерживаем повторяемые запросы в соответствии со спецификацией OASIS Repeatable Requests версии 1.0 . Для поддержки этого клиентам необходимо указать два обязательных заголовка в запросе POST:

  • Повторяемость—идентификатор запроса
  • Повторяемость при первой отправке

Заголовок Repeatability-Request-Id

Значение этого заголовка однозначно идентифицирует запрос с помощью GUID.

Заголовок Repeatability-First-Sent

Значение этого заголовка представляет метку времени, когда исходный запрос был впервые отправлен. Значение должно быть указано в формате UTC в формате IMF-fixdate. Мы отслеживаем запросы только за указанную длительность (в настоящее время отслеживаемая длительность составляет 5 минут). Все запросы с первым отправленным значением, предшествующим , считаются потенциально небезопасными для повторного выполнения и возвращают ошибку 412 (сбой предварительного условия).

Повторяемость в пакетах SDK для ACS

Заголовки повторяемости автоматически создаются, добавляются и отправляются в API при использовании любой из библиотек пакета SDK ACS.

Повторяемые коды ответа на запросы

Подробные сведения о различных кодах состояния для повторяемых запросов приведены в таблице ниже.

Повторяемость—идентификатор запроса Повторяемость при первой отправке Результат повторяемости Код состояния ответа
Допустимый GUID Недопустимый формат Отклонено 400
Недопустимый формат Допустимая дата Отклонено 400
Недопустимый формат Недопустимый формат Отклонено 400
Допустимо Продолжительность отслеживания за пределами Отклонено 412 (сбой предварительного условия)
Допустимый новый или нерепликированный запрос В пределах длительности отслеживания Принято Код состояния при обычном выполнении
Допустимый повторяющийся запрос В течение длительности отслеживания, но не соответствует предыдущему запросу Отклонено 400
Допустимый повторяющийся запрос В течение длительности отслеживания соответствует предыдущему запросу Принято В API отправки Email:
— Если исходный запрос все еще выполняется: 409
— Если исходный код состояния запроса был 2xx или 4xx, возвращается этот код состояния.
— Если исходный код состояния запроса был 5xx, возвращает код состояния при повторном выполнении запроса.

Устранение неполадок

Если вы отправили запрос с первой отправляемой меткой времени, которая находится в течение последних 5 минут, но по-прежнему получаете сообщение об ошибке 412 (сбой условия) с сообщением "Повторяемость первого отправленного заголовка не была в 5-минутном окне", убедитесь, что проверка, что часы клиентского компьютера синхронизированы с сервером времени.

См. также:

Дополнительные сведения о Службы коммуникации Azure см. в других источниках документации: