Возврат ошибок

  1. Все ошибки от API возвращаются всегда в Json формате.

  2. Если веб метод не найден, вернется 404 NotFound

{
    "ErrorMessage": "/testerror1 не найден",
    "HttpStatusCode": 404,
    "HttpStatusMessage": "NotFound"
}
  1. Если произошла непредвиденная ошибка при обработке SQL, вернется 500 InternalServerError

{
    "ErrorMessage": "Could not find stored procedure 'xxx'.",
    "HttpStatusCode": 500,
    "HttpStatusMessage": "InternalServerError"
}

При этом ErrorMessage будет заполнено только если API запущено в режиме Development. В остальных режимах клиент не узнает подробности ошибки. Искать ее следует в логах.

  1. Если произошла не SQL ошибка, вернется 400 BadRequest

{
    "ErrorMessage": "........",
    "HttpStatusCode": 400,
    "HttpStatusMessage": "BadRequest"
}

При этом ErrorMessage будет заполнено только если API запущено в режиме Development. В остальных режимах клиент не узнает подробности ошибки. Искать ее следует в логах.

  1. Если метод необходимо запускать с авторизацией, но этого сделано не было, вернется 401 Unauthorized

{
    "ErrorCode": 11,
    "ErrorMessage": "Сессия истекла. Перезапустите приложение.",
    "HttpStatusCode": 401,
    "HttpStatusMessage": "Unauthorized"
}
  1. Если произошла управляемая ошибка, через вызов SY_RaiseError, вернется 400 BadRequest

{
    "ErrorCode": 10,
    "ErrorMessage": "Ошибка",
    "HttpStatusCode": 400,
    "HttpStatusMessage": "BadRequest"
}

ErrorCode - код ошибки, переданный в SY_RaiseError

ErrorMessage - сообщение, переданное в SY_RaiseError

Код ошибки должен быть зарегистрирован в таблице SY_ErrorTypes. Для общей ошибки используйте код 10, уточняя детали в сообщении.

Пример вызова

exec SY_RaiseError 10, 'Ошибка'

Last updated