10 кодов состояния ошибки при создании API в первый раз и способы их устранения

Не всегда все идет гладко при первом вызове API, особенно если вы новичок и впервые интегрируете API в другую систему. Часто в документации отсутствуют коды состояния ошибок API, поскольку легче предвидеть, что все идет правильно, чем то, что идет неправильно.

Коды состояния HTTP могут дать вам представление о том, что происходило во время вызова API. Стандартные коды состояния идут от 100 до 511, и все они имеют разные значения, но только коды состояния от 400 до 511 отражают ответ об ошибке. Если вы используете Moesif, посмотрите сводку наиболее вероятных статусов ошибок API с помощью этой удобной таблицы.

Давайте рассмотрим 10 наиболее распространенных кодов состояния HTTP, которые указывают на ответ об ошибке как на стороне клиента, так и на стороне сервера.

Коды состояния на стороне клиента

Группа кодов состояния 4XX обычно связана с ошибками на стороне клиента, но изменения в API также могут их вызывать. Ниже приведены 5 наиболее распространенных кодов ошибок состояния на стороне клиента и способы их устранения:

404 Not Found

Это, безусловно, самый распространенный код состояния HTTP, который вы можете получить. Он означает, что URL, который вы использовали в своем запросе, не существует на сервере API или сервере происхождения. Хотя это ошибка 4XX, которая обычно означает, что что-то не так на стороне клиента, она также может указывать на проблему на сервере. Иногда пути URL API меняются после обновления версии, но иногда они меняются потому, что что-то на сервере пошло не так.

Лучше всего проверить, нет ли у вас опечатки в клиентском коде, прежде чем проверять, нет ли проблем с API.

401 Unauthorized

Этот код состояния означает, что вы еще не прошли аутентификацию в API. API не знает, кто вы, и не будет вас обслуживать.

Для большинства API необходимо зарегистрироваться и получить ключ API. Этот ключ затем используется в поле заголовка HTTP при отправке запроса, сообщая API, кто вы такой.

Этот код статуса http похож на менее распространенный 407 Proxy Authentication Required, который означает, что вы не прошли аутентификацию на прокси-сервере.

403 Forbidden

Запрещенный статус указывает на то, что у вас нет разрешения на запрос данного URL. Вы аутентифицированы, но пользователь или роль, для которой вы аутентифицированы, не имеет права делать запрос API.

Это также происходит при проблемах с аутентификацией, например, при использовании неправильного ключа API или при попытке получить доступ к функциям, которые не разрешены вашим планом подписки.

400 Bad Request

Сообщение об ошибке 400 Bad Request — это один из самых общих кодов состояния HTTP. Он означает, что вы неправильно оформили свой API-запрос. Если в теле ответа нет дополнительной информации об ошибке, вам необходимо проверить документацию. Возможно, вам не хватает запроса, поля в теле запроса, или поле заголовка может быть неправильным. Также может быть, что некоторые данные вашего запроса имеют неправильный синтаксис.

Это отличается от сообщения об ошибке 422 Unprocessable Entity, которое появляется, когда ваш запрос правильно отформатирован, но не может быть обработан.

429 Слишком много запросов

Большинство планов подписки на API имеют ограничения — чем дешевле план, тем меньше запросов в секунду разрешено для вашего ключа API.

Если вы отправляете слишком много запросов за короткий промежуток времени, рассмотрите возможность их дросселирования в вашем клиенте. Этот ответ может также указывать на то, что вы превысили ежедневный, еженедельный или ежемесячный лимит на вашем аккаунте. Без внедрения аналитики API можно достичь этих лимитов, не получив push-уведомления или предупреждения по электронной почте.

Иногда API кажется подходящим, пока вы не увидите лимиты, и вдруг он больше не подходит для вашего случая использования. Перед интеграцией проверьте, что входит в подписку на API, иначе вы можете столкнуться с проблемами через несколько недель или месяцев после интеграции API.

Коды состояния на стороне сервера

Группа кодов состояния 5XX обычно возвращается в ответ на ошибку сервера, но некорректный вызов API, который должен отвечать 4XX, также может вернуть ошибку 5XX, если она не была правильно поймана на сервере. Вот 5 наиболее распространенных ошибок и способы их устранения:

500 Внутренняя ошибка сервера

Этот код состояния HTTP может означать что угодно, но обычно он указывает на сбой сервера API. Это может быть вызвано чем-то, связанным с вашим вызовом API.

Дважды проверьте документацию, чтобы убедиться, что вы все сделали правильно: поля запроса, поля тела, заголовки и формат.

Если это не помогло устранить проблему, она также могла быть связана с обновлением API, которое внесло ошибки в код, или с данными, которые API загрузил из вышестоящего сервиса. В этом случае единственным вариантом действий может быть обращение в службу поддержки API.

502 Плохой шлюз

Этот ответ говорит о том, что сервер, к которому вы обращались, был не настоящим сервером API, а шлюзом или прокси-сервером. Прокси-сервер пытается вызвать сервер API от вашего имени. Этот ответ об ошибке также указывает на то, что сервер API не ответил. Это может быть связано с сетевыми проблемами или просто с тем, что сервер API упал или не работает.

Ошибка «плохой шлюз» обычно носит временный характер и должна быть решена поставщиком API, но если она сохраняется, необходимо связаться со службой поддержки.

503 Service Unavailable

Статус 503 Service Unavailable указывает на ошибку сервера. Было отправлено слишком много API-запросов, и теперь API не может обработать больше ни одного из них. Эта проблема решается сама собой, когда клиенты отправляют меньше будущих запросов, но она также может означать, что поставщик API не запланировал достаточно ресурсов для всех своих клиентов.

Если это соответствует вашему сценарию использования, вы можете сделать своего клиента более устойчивым к этой ошибке, подождав отправки очередного запроса. Но если код ошибки продолжает появляться, вам необходимо связаться с поставщиком API.

504 Gateway Timed Out

Как и статус 502 Bad Gateway, этот код ответа говорит о том, что сервер, к которому вы обращались, является прокси-сервером для настоящего сервера API. На этот раз проблема заключается в медленном ответе сервера API.

Это может быть связано с высокой сетевой задержкой между прокси-сервером и сервером API. Это также может означать, что серверу API требуется слишком много времени для обработки вашего запроса.

Чтобы решить эту проблему, проверьте, может ли содержание вашего запроса быть связано с этим таймаутом. Если вы запрашиваете слишком много данных или вычисления занимают слишком много времени, попробуйте уменьшить его.

Если вы считаете свой запрос обоснованным, а статус не исчезает, обратитесь в службу поддержки.

501 Not Implemented

Код состояния 501 Not Implemented связан с методом HTTP, который вы использовали для запроса URL. Вы можете попробовать использовать другой метод HTTP для выполнения запроса.

Обычно HTTP-запрос с использованием неподходящего метода приводит к статусу 404 not found. Статус «не реализован» означает, что метод еще не реализован. Создатель API может использовать этот статус, чтобы сообщить клиентам, что этот метод будет доступен для них в будущих запросах.

Мониторинг кодов состояния HTTP с помощью Moesif

Moesif предоставляет богатый набор возможностей мониторинга и уведомлений, поэтому вы можете автоматически отслеживать любые ошибки кода состояния HTTP и получать глубокое понимание тенденций ответов на ошибки.

Вызовы API всегда отслеживаются с идентификацией пользователя, что позволяет легко находить ошибки и быстро их устранять.

Сводка

Несомненно, вы увидите множество кодов ошибок при использовании API, но большинство из них имеют разумные способы устранения. Некоторые из них связаны с ошибками сервера, а некоторые — с ошибками на стороне клиента, причем часто одно может вызывать другое.

Всегда старайтесь внимательно читать документацию и примечания к API, чтобы ничего не забыть при интеграции. Если что-то просто сломалось, свяжитесь с поставщиком API.

В некоторых случаях поставщик API никогда не исправит проблему для потребителя API. Если вы используете популярный API, вы также можете поискать ответы в Интернете, особенно на StackOverflow, чтобы найти решение для ваших ответов на ошибки. Будьте решительны, и вы быстро увидите коды состояния 200 ok.


Эта статья была первоначально написана для блога Moesif.

Оцените статью
devanswers.ru
Добавить комментарий