Общие правила обработки ответов
При обработке ответа необходимо анализировать код ответа HTTP и статус объекта (при наличии).
- HTTP 200 со статусом объекта
succeeded, с аналогичным финальным статусом или с объектом без статуса — операция успешна. - HTTP 200 со статусом объекта
pending— результат выполнения операции пока неизвестен. Дожидайтесь входящего уведомления об изменении статуса. Если у этого объекта нет уведомлений, повторите запрос с теми же данными и с тем же ключом идемпотентности или запросите информацию об объекте методом GET. Если статус объекта не изменится, повторяйте запрос с возрастающим разумным интервалом (например, можно использовать последовательность Фибоначчи). - HTTP 200 со статусом объекта
canceledили аналогичным финальным статусом — операция неуспешна. Проанализируйте причину, из-за которой операция не прошла. При необходимости запросите у пользователя новые данные, повторите запрос с новым ключом идемпотентности и новыми данными. - HTTP 200 со статусом, отличным от
succeeded,canceled,pending— запрос успешно обработан. Ваши действия зависят от значения полученного статуса. - HTTP 4XX — операция неуспешна. Проанализируйте причину, из-за которой операция не прошла. При необходимости повторите запрос с новым ключом идемпотентности и новыми данными.
- HTTP 500 — результат обработки запроса пока не известен. Повторите запрос с теми же данными и с тем же ключом идемпотентности или запросите информацию об объекте методом GET. Если статус объекта не изменится, повторяйте запрос с возрастающим разумным интервалом (например, можно использовать последовательность Фибоначчи).
Что почитать еще