Возможные ошибки API
Last updated
Last updated
Необходимо быть готовым обрабатывать различные ошибки. В этом документе мы опишем http ошибки, которые могут возвращаться со стороны сервиса DealApp, однако так же следует предусмотреть работу с ошибками, которые возникают вне этого сервиса - ошибки доступа по сети.
Сервис DealApp имеет 2 домена: один домен для frontend'a (для облачной версии это app.dealapp.io), другой - для backend API (пример для облачной версии это api.prod1.dealapp.io).
При обращении на домен Backend сервера, возвращается JSON документ с данными о версии приложения. Этот endpoint используется для проверки работоспособности и доступности приложения.
В случаях, если API доступно и работоспособно, сервер будет отвечать на запросы с ошибка используя http коды ответов. Это значит, что все запросы с кодом 400+ могут быть интерпретированы, как ошибка. Каждый тип ошибок с кодами 400-500 возвращает дополнительную информацию в JSON формате с сообщением о причинах, по которым происходит ошибка.
Неверно отформатированный запрос. Такая ошибка возвращается, если сервер не может распознать и разобрать документ, который высылается с запросом.
Пример:
Ошибка авторизации. Такая ошибка происходит в 2ух случаях: либо вы используете неверные данные для логина, либо вы пытаетесь сделать действие, на которое у вас нету прав. Для решения вопроса с авторизацией, обратитесь к соответствующему разделу в документации API.
Пример:
Превышение времени ожидания. Такая ошибка может возникнуть при невозможности получить информацию от внутренних сервисов: недоступность базы данных, ошибка подключения к redis.
Ошибка валидации данных. Такая ошибка происходит при POST / PUT / DELETE запросах и означает, что выполняемое действие не соответствует внутренней логике приложения. Также такой ответ может приходить в результате GET запроса с неверными фильтрами.Пример:
Ошибка в работе сервиса. Такая ошибка может значить нарушение внутренней логики приложения, либо ошибку с инфраструктурой приложения: недоступность или неверная работа контейнерной среды, ошибка подключения к базе данных и прочее.
При возникновении таких ошибок, обращайтесь в техническую поддержку DealApp.
Ошибка с доступом (nginx ошибка). Приложение запущено, но не отвечает на запросы. Обычно это происходит при инициализации контейнера, когда приложение еще не запустилось.
Сервис недоступен (nginx ошибка). Процесс с контейнером сервиса выходит с ошибкой. Обычно это значит, что приложение не может запуститься - в этом случае необходимо ознакомиться с логами приложения и исправить возникающую ошибку.