Обработка ошибок

Все ошибки API возвращаются в едином формате, использующем стандартные коды ответа HTTP.

Формат ошибки

{
  "code": 400,
  "error": "человеко-читаемое описание ошибки",
  "request_id": "a1b2c3d4e5f67890",
  "details": { ... }
}

Описание полей:

  • code — HTTP-код ответа;

  • error — человеко-читаемое сообщение об ошибке; не содержит технических деталей;

  • request_id — уникальный идентификатор запроса, используемый для трассировки в логах сервера;

  • details — используется в логах сервера для отладки.

Коды ответа HTTP

Код Описание Типичные случаи

200

Успех

GET, PUT, DELETE успешны; возврат данных

201

Создано

Успешное создание зоны, записи, узла или делегирования

204

Удалено

Успешное удаление записи, узла, зоны или делегирования (нет тела ответа)

207

Частичный успех

Пакетная операция (bulk) — часть операций завершилась с ошибками

400

Ошибка запроса

Невалидные параметры, отсутствие обязательных полей, SOA-ограничения, неверный формат данных

401

Не авторизован

Отсутствует или невалиден Kerberos-билет (SPNEGO)

403

Доступ запрещен

RBAC-политики Casbin: пользователь не имеет требуемой роли (например, INSUFFICIENT_ACCESS)

404

Не найдено

Зона, запись, узел, делегирование или партиция отсутствуют

409

Конфликт

Зона существует в нескольких партициях (AMBIGUOUS_ZONE_REFERENCE), дубликат при создании

422

Неприменимо

Пустой список masterIP для secondary/stub/forward, попытка удалить SOA, неверный scope

500

Внутренняя ошибка

Ошибка LDAP, DCE/RPC, кэша, базы данных или внутренней логики сервера

501

Не реализовано

Запрошенный тип зоны или операция не поддерживается в текущей версии

Обновлено: