Обработка ошибок
Проверяйте HTTP-статус, типизированное тело ошибки и идентификаторы запроса и корреляции. Не показывайте пользователю секреты или внутренние детали вышестоящих сервисов.
Частые статусы
| Статус | Значение |
|---|---|
400 | Некорректный запрос или неподдерживаемый параметр |
401 | Отсутствующий или недействительный ключ |
403 | Недостаточная область полномочий или доступ |
404 | Ресурс или модель не найдены |
409 | Конфликт версии или идемпотентности |
422 | Ошибка валидации |
429 | Превышен лимит |
5xx | Временная ошибка сервиса или вышестоящего сервиса |
Повторы
Автоматически повторяйте только безопасные операции. Для мутаций используйте контрактный Idempotency-Key. Применяйте ограниченную экспоненциальную задержку со случайным разбросом и соблюдайте Retry-After.
Потоковая передача
После отправки заголовков ошибка может прийти как событие потока. Клиент должен различать корректное завершение, событие ошибки и сетевой обрыв. Не повторяйте потоковый запрос автоматически, если часть результата уже обработана.