Коды ошибок REST API модуля ithive.ipr
Методы ipr.* возвращают ошибки в конверте модуля (Vibe API) внутри стандартной обёртки Bitrix REST.
Полный перечень кодов совпадает с IPR\Rest\RestApi. На страницах методов указаны только актуальные для конкретного endpoint'а коды — этот справочник содержит все коды модуля.
Формат ответа при ошибке
{
"result": {
"result": null,
"total": null,
"next": null,
"error": {
"code": "VALIDATION_ERROR",
"message": "Required parameter \"userId\" must be a positive integer",
"details": {
"field": "userId"
}
}
},
"time": {}
}
details опционален (часто field, id, userId, allowed и т. п.).
HTTP-статус
HTTP-статус ответа выставляется по коду ошибки (RestApi::getHttpStatusForCode). Важная особенность модуля: коды, не перечисленные явно в таблице ниже как 401/403/500, отдаются с HTTP 400 (в том числе NOT_FOUND и METHOD_NOT_FOUND) — в отличие от привычного REST-соглашения «404 для NOT_FOUND». Ориентируйтесь на поле error.code в теле ответа, а не только на HTTP-статус.
Общие коды
| Код | HTTP | Когда возникает |
|---|---|---|
UNAUTHORIZED |
401 | Пользователь не авторизован (нет пользователя в контексте REST-вызова) |
PERMISSION_DENIED |
403 | Недостаточно прав на операцию или сущность. В коде также встречается алиас ERROR_ACCESS_DENIED — это то же самое значение PERMISSION_DENIED, отдельного кода ACCESS_DENIED в ответах нет |
VALIDATION_ERROR |
400 | Некорректные, неполные или несовместимые параметры запроса |
NOT_FOUND |
400 | Сущность не найдена или недоступна вызывающему |
INVALID_LIMIT |
400 | limit не является положительным целым числом |
LIMIT_EXCEEDED |
400 | limit больше 500 |
INVALID_OFFSET |
400 | offset отрицательный |
INVALID_FILTER |
400 | Некорректная структура filter (например, пустой массив в $in/$nin) |
INVALID_FILTER_OPERATOR |
400 | Неизвестный оператор фильтра (разрешены $eq, $ne, $gt, $gte, $lt, $lte, $in, $nin) |
FETCH_ALL_LIMIT_EXCEEDED |
400 | При fetchAll=true количество подходящих записей больше 5000 |
METHOD_NOT_FOUND |
400 | Метод REST не зарегистрирован (зарезервированный код; фактически на неизвестный метод отвечает REST-движок Bitrix) |
NOT_IMPLEMENTED |
400 | Метод зарегистрирован, но бизнес-логика ещё не реализована |
IPR_ALREADY_EXISTS |
400 | У сотрудника уже достигнут лимит активных ИПР/ПИС (опция модуля «Количество возможных программ», по умолчанию 2) |
FILE_TOO_LARGE |
400 | Загружаемый файл превышает лимит размера (зарезервировано) |
INTERNAL_ERROR |
500 | Непредвиденная ошибка на сервере |
Специфичные для методов ситуации
ipr.ipr.add/ipr.programtemplate.launch/ipr.programtemplate.masslaunch— при достижении лимита активных программ у сотрудника:IPR_ALREADY_EXISTS.ipr.ipr.update(сменаstatus),ipr.ipr.complete/approve/reject/reopen— недопустимый переход статуса из текущего состояния карточки:VALIDATION_ERROR(полеstatusвdetails).ipr.ipr.delete,ipr.action.delete(безforce) — попытка удалить карточку/обязательное мероприятие без прав или в неудаляемом состоянии:PERMISSION_DENIED.ipr.test.attempt.start— если у теста нет привязанных вопросов:VALIDATION_ERROR.ipr.test.attempt.answer— вопрос не относится к попытке или попытка уже завершена (STATUS = F):VALIDATION_ERROR/NOT_FOUND.- Методы, зависящие от модуля
iblockилиlearning(все, кромеcurrentUser/schema/history.*): если модуль не подключён на портале —INTERNAL_ERROR.
См. также
Предыдущая
Следующая