Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Центр партнеров | Рекомендации Центра партнеров
Соответствующие роли: администратор рефералов | Пользователь рефералов
Рефералы REST API Центра партнеров возвращают объект JSON, содержащий код состояния. Этот код, указывающий, был ли ваш запрос успешным или почему он завершился ошибкой.
Ответы на успех
Код состояния 2xx указывает, что запрос клиента был успешно получен, понят и принят. Следующие коды состояния 2xx указывают на успешный ответ:
- 200: успешно подтверждено
- 201: создан ресурс
- 202: принято
- 204: Нет содержимого для возврата
Сообщения об ошибках
Любой ответ с кодом состояния 4xx или 5xx содержит сообщение об ошибке с подробными сведениями об условиях ошибки для этого кода.
В следующей таблице перечислены и описаны коды состояния HTTP, которые можно вернуть для сценариев ошибок.
Код состояния | Сообщение о состоянии | Описание |
---|---|---|
400 | ошибка запроса | Не удается обработать запрос, так как он имеет неверный формат или является некорректным. |
401 | Не авторизовано | Необходимые данные для проверки подлинности отсутствуют или не являются допустимыми для ресурса. |
403 | Запрещено | Отказано в доступе к запрашиваемому ресурсу. Возможно, у пользователя недостаточно разрешений. |
404 | Не найдено | Запрашиваемый ресурс не существует. |
405 | Метод не разрешен | Метод HTTP в запросе не разрешен в ресурсе. |
406 | Недопустимо | Эта служба не поддерживает формат, запрашиваемый в заголовке Accept. |
409 | Конфликт | Текущее состояние конфликтует с ожиданиями запроса. Например, указанная родительская папка не существует. |
410 | Потеряно | Запрашиваемый ресурс больше не доступен на сервере. |
411 | Требуется длина | В запросе необходимо указать заголовок Content-Length. |
412 | Необходимое условие не выполнено | Условие, предоставленное в запросе (например, заголовок if-match), не соответствует текущему состоянию ресурса. |
413 | Размер сущности запроса слишком большой | Размер запроса превышает ограничение. |
415 | Неподдерживаемый тип носителя | Тип контента запроса — это формат, который служба не поддерживает. |
416 | Запрошенный диапазон невыполним | Заданный диапазон байтов недопустим или недоступен. |
422 | Необрабатываемый объект | Не удается обработать запрос, так как это семантическая ошибка. |
423 | Заблокировано | Запрашиваемый ресурс заблокирован. |
429 | Слишком много запросов | Клиентское приложение ограничено и не следует повторять запрос некоторое время. |
500 | Внутренняя ошибка сервера | При обработке запроса возникла внутренняя ошибка сервера. |
501 | Не реализовано | Запрашиваемая функция не реализована. |
503 | Служба недоступна | Служба временно недоступна для обслуживания или перегружена. Вы можете повторить запрос по прошествии времени, которое можно указать в заголовке Retry-After. |
504 | Истекло время ожидания шлюза | Сервер, выступая в качестве прокси-сервера, не получил своевременного ответа от вышестоящего сервера, к нему необходимо получить доступ при попытке завершить запрос. Может возникать вместе с 503. |
507 | Недостаточно места в хранилище | Достигнута максимальная квота хранилища. |
509 | Превышен предел пропускной способности | Клиентское приложение ограничено из-за превышения максимального предела пропускной способности. Приложение может повторить запрос еще раз через некоторое время. |
Тип ресурса ошибки
Ответ об ошибке — это отдельный объект JSON, содержащий одно свойство с именем error. Этот объект содержит все сведения об ошибке. Вы можете использовать возвращаемые в нем данные вместо кода состояния HTTP или вместе с ним.
В следующей таблице и примерах кода описывается схема ответа на ошибку.
Имя. | Тип | Описание |
---|---|---|
код | строка | Всегда возвращается. Указывает тип возникшей ошибки. Не принимает значение null. |
сообщение | строка | Всегда возвращается. Подробно описывает ошибку и предоставляет дополнительные сведения об отладке. Ненулевое непустое значение. Максимальная длина — 1024 символов. |
внутренняя ошибка | объект | Необязательно. Другой объект ошибки, предоставляющий более конкретные сведения об ошибке. |
код внутренней ошибки | числовая строка | Всегда возвращается, если innerError не равно NULL. Предоставляет более конкретные сведения об коде ошибки в значении верхнего значения кода ошибки. |
сообщениеВнутреннейОшибки | строка | Всегда возвращается, если innerError не равно null. Предоставляет более конкретное сообщение об ошибке в верхней строке сообщения об ошибке. |
innerError.details | объект массива | Необязательно. Содержит дополнительные сведения об ошибке. Прежде всего полезно при ошибках проверки входных данных. |
целевой объект | строка | Необязательно. Целевой объект, в котором возникла ошибка. |
Пример ответа об ошибке
{
"error": {
"code": "unauthenticated",
"message": "The caller is not authenticated.",
"innerError": {
"code": "99902",
"message": "Request not authenticated",
"details": null
}
}
}
Другой пример с заполненным объектом innerError.details :
{
"error": {
"code": "invalidRequest",
"message": "The request is malformed or incorrect.",
"innerError": {
"code": "99901",
"message": "InvalidInput",
"details": [
{
"InvalidReferralForCoSellConversion": [
"If PartnerLed referral has no solution it cannot be converted to co-sell referral"
]
}
]
}
}
}
Свойство Code
Свойство code
содержит одно из перечисленных ниже возможных значений. Приложения должны быть готовы к обработке любой из этих ошибок.
Код | Код состояния HTTP | Описание |
---|---|---|
invalidRequest | 400 | Запрос представлен в неправильном формате или является некорректным. |
unauthenticated | 401 | Вызывающий не прошёл проверку подлинности. |
accessDenied | 403 | У вызывающего нет разрешения на выполнение действия. |
itemNotFound | 404 | Не удалось найти ресурс. |
resourceModified | 409 | Обновляемый ресурс изменился с момента последнего чтения вызывающим объектом, обычно это несоответствие eTag. |
предварительное условие не выполнено | 412 | Условие, предоставленное в запросе (например, заголовок if-match), не соответствует текущему состоянию ресурса. |
generalException | 500 | Произошла неизвестная ошибка. |
serviceNotAvailable | 503 | Служба недоступна. Повторите попытку через некоторое время. Возможно, задан заголовок Retry-After. |
Свойство сообщения
Свойство message
в корне содержит сообщение об ошибке, предназначенное для разработчика. Сообщения об ошибках не локализованы и не должны отображаться непосредственно пользователю. Код не должен проверять значения message
только потому, что они могут изменяться в любое время, и они часто содержат динамические сведения, относящиеся к неудачном запросу. В вашем коде следует учитывать коды ошибок, возвращаемые в свойствах code
, а затем для получения более подробной информации комбинировать их с текстом сообщения.
Объект InnerError
Объект innererror
может рекурсивно содержать больше innererror
объектов с более конкретными кодами ошибок. Клиентское приложение при обработке ошибки должно прокрутить все доступные коды ошибок и использовать наиболее подробный, который они понимают.
В вашем приложении могут возникнуть некоторые ошибки при работе с вложенными объектами innererror
. Приложения не обязаны обрабатывать эти ошибки, но могут сделать это, если захотят. Служба может добавлять новые коды ошибок или перестать возвращать старые в любое время, поэтому важно, чтобы все приложения могли обрабатывать [основные коды ошибок].
Коды ошибок
Ниже приведены коды ошибок, возвращаемые API:
Состояние HTTP | Код ошибки HTTP | Код ошибки | Описание |
---|---|---|---|
Неправильный запрос | 400 | 99901 | недопустимые входные данные |
Не авторизовано | 401 | 99902 | Несанкционированный доступ |
Неверный запрос | 400 | 99903 | Отсутствующие входные данные |
Не найдено | 404 | 99904 | Ресурс не найден |
Внутренняя ошибка сервера | 500 | 99905 | Ошибка не указана |
Слишком много запросов | 429 | 99906 | Слишком много запросов |
Внутренняя ошибка сервера | 500 | 99907 | Временная внутренняя ошибка |
Неверный запрос | 400 | 99908 | Свойство не подлежит обновлению |
Неверный запрос | 400 | 99909 | Свойство не допускает значение NULL |
Предварительное условие не выполнено | 412 | 99910 | Значение Etag не совпадает |
Ошибка запроса | 400 | 99911 | Недопустимый статус направления для приглашения |
Неверный запрос | 400 | 99912 | Требуется решение с типом "имя" |
Запрещено | 403 | 99913 | Организация не находится в списке разрешенных на создание ресурса. |
Запрещено | 403 Доступ запрещён | 99914 | Организация не включена в белый список для участия в совместных продажах. |
ВнутренняяОшибкаСервера | 500 | 99915 | Сбой выполнения внутреннего запроса |
Конфликт | 409 | 99917 | Ресурс уже изменен с помощью другого запроса |
Предварительное условие не выполнено | 412 | 99918 | Условие, предоставленное в запросе (например, заголовок if-match), не соответствует текущему состоянию ресурса. |
Некорректный запрос | 400 | 99919 | Недопустимая квалификация рефералов для обновления |
Внутренняя ошибка сервера | 500 | 99999 | Общее исключение при обработке запроса |