Ошибки и коды ответов
Успешный ответ возвращается с кодом 200 OK и содержит запрошенные данные. Часть методов —
удаление, квитирование событий, отправка команды — при успешном выполнении возвращает пустое тело
ответа.
Формат ошибки
При ошибке API возвращает JSON:
{
"Status": "FAIL",
"ErrorMessage": "Choose a shorter time interval"
}
Status— для ошибок всегдаFAIL.ErrorMessage— текстовое описание причины. Формулировки предназначены для разработчика и журнала интеграции и могут изменяться между версиями Системы.Args— необязательное поле со списком уточняющих значений, например с наименованием сущности, вызвавшей конфликт. Присутствует не во всех ошибках.
Коды состояния HTTP
200 OK— запрос выполнен.400 Bad Request— запрос составлен некорректно: не заполнено обязательное поле, превышена допустимая длительность интервала, передан файл неподдерживаемого формата.401 Unauthorized— токен отсутствует, истёк или повреждён. См. Срок действия токена.403 Forbidden— неверные логин или пароль при получении токена либо отсутствие прав на запрошенные данные.404 Not Found— сущность с указанным идентификатором не существует или недоступна пользователю по правам доступа.409 Conflict— конфликт данных: дубликат наименования, IMEI или UID ключа, удаление сущности, на которую есть ссылки.422 Unprocessable Content— операция невыполнима в текущем состоянии данных, например удаление компании, за которой закреплены пользователи.429 Too Many Requests— превышен лимит одновременно выполняемых задач импорта истории.500 Internal Server Error— внутренняя ошибка сервера.503 Service Unavailable— запрос отклонён ограничителем частоты, см. следующий раздел.
Часть проверок прав доступа возвращает код 500 с сообщением о недостатке прав вместо 403. Если
в поле ErrorMessage упоминаются права или разрешения, причиной является состав прав пользователя.
Ограничение частоты запросов
Частота обращений одного клиента ограничивается по алгоритму скользящего окна. Значения по умолчанию — 20 запросов за 60 секунд; они задаются в настройках сервера и на конкретной установке могут отличаться.
Ограничение распространяется на все методы, включая получение токена, и действует на клиента
целиком, а не на каждый метод в отдельности. Запросы сверх лимита отклоняются с кодом
503 Service Unavailable и пустым телом ответа; заголовок Retry-After не передаётся.