Обработка ошибок API
При разработке чат-бота на платформе Metabot, а также при интеграции с чат-ботом из внешних систем, советуем придерживаться описанных ниже рекомендаций.
Использование конструкций try..catch не поддерживается платформой на данный момент. Вы, конечно, можете так оборачивать код, но это ни к чему не приведет. Платформа сама, на системном уровне, обеспечивает безопасное выполнение кода и обработку исключительных ситуаций. Мы позаботились об этом: "под капотом" все безопасно, обернуто try..catch. Не нужно беспокоится, что код упадет по непонятным вам причинам.
Ошибки в чат-боте будут только там, где они должны возникать (например, ошибка в коде, синтаксисе, в обработке данных). Для всех случаев платформа Metabot вернет вызывающей стороне 500 ошибку.
При разработке прикладной бизнес-логики вы можете сами возвращать нужную ошибку, когда вам будет необходимо. Например, когда нужно сообщить о проблемах с валидацией или не валидности запроса. В этом случае платформа вернет 200 ответ, а в теле JSON ответа нам нужно добавить информацию об ошибке. Если не уверены, как лучше сформировать тело ответа, можете воспользоваться нашим рекомендованным стандартом, которые приведен ниже.
Все возможные коды ответа сервера
|
Код ответа HTTP |
Причина |
Возможны ли доп. поле в тела ответа |
|
200 |
Все хорошо. В теле запроса возможны дополнительные ответы. |
Да |
|
401 |
Отсутствуют данные для авторизации или не верный токен авторизации. |
Нет |
|
403 |
Нет прав для выполнения запроса. Например, у пользователя API, для которого выдан токен, нет прав доступа к чат-боту. |
Нет |
|
404 |
Неправильный URL запроса. Возникает, когда точки интеграции нет или URL совсем не верный. Если URL верный, то значит кастомный внутренний эндпоинт не найден по алиасу. |
Нет |
|
500 |
Внутренняя ошибка. Например, ошибка в JavaScript коде чат-бота. |
Нет |
Тело ответа для 200 ответа
В случае успеха, чат-бот возвращает код ответа 200 OK, а в теле запроса, содержится информация об успешном выполнении, например:
{
"success": true
}
{
"success": false,
"message": "Сообщение об ошибке"
}
В случае, если необходимо возвращать код ошибки, будет добавлен код ошибки, например:
{
"success": false,
"errorCode": 422,
"message": "Ошибка валидации"
}
Нет комментариев