Справочник кодов ошибок API карт разреженного пространства
Формат ответа
Все ответы API используют унифицированный JSON-формат. Пример:
{
"statusCode": 119,
"msg": "Parameter has errors",
"date": "2022-06-15T09:56:30.000Z",
"result": // поле result присутствует только при statusCode = 0. При ошибке поле пустое
}
| Поле | Тип | Описание |
|---|---|---|
| statusCode | integer | Бизнес-код статуса. 0 = успех, не 0 = ошибка |
| msg | string | Сообщение |
| result | object | Возвращаемое содержимое. При statusCode=0 содержит структуру объекта целевой карты, иначе пусто |
| date | string | Время сервера |
Важно
Поле result содержит ответ только при условии statusCode == 0. В остальных случаях result пустое.
При statusCode != 0 обращайте внимание на сообщение об ошибке в поле msg.
Классификация кодов ошибок
Пояснения кодам состояния HTTP
| Код состояния HTTP | Описание |
|---|---|
| 200 | Запрос успешен (может содержать бизнес-ошибку) |
| 400 | Ошибка в параметрах запроса |
| 401 | Сбой аутентификации APIKey |
| 403 | Недостаточно прав или доступ к ресурсу запрещен |
| 404 | Запрашиваемый URL-путь API не существует |
| 500 | Внутренняя ошибка сервера |
| 502 | Перехвачено исключение приложения (возможна ошибка данных) |
Примечание: Бизнес-ошибки обычно возвращаются с HTTP-статусом 200, конкретный тип ошибки указывается в поле statusCode.
Таблица бизнес-кодов состояния
| Код состояния | Сообщение |
|---|---|
| 0 | Успех |
| 101 | Загруженный файл пуст |
| 102 | Размер файла слишком велик |
| 106 | Отсутствует параметр или параметр пуст |
| 110 | Ошибки вызова API сервера |
| 111 | Ресурс не найден |
| 401 | Срок действия токена аутентификации истек |
| 401 | Отсутствует параметр аутентификации |
| 401 | Неизвестный appId или appKey |
| 401 | Учетная запись заблокирована |
| 401 | Ошибка аутентификации, недействительная подпись или токен |
Распространенные сценарии ошибок
Таймаут отсутствия ответа
- Request Timeout: Сеть медленная, рекомендуется проверить сетевое окружение клиента.
Ошибки аутентификации
- Http 401 Unauthorized: Сбой аутентификации APIKey. Проверьте правильность appId/appKey.
- Код состояния 401: Недействительный ключ приложения или приложение не существует. Проверьте настройки приложения.
Ошибки параметров
- 400 Bad Request: Ошибка формата параметров запроса.
Ошибки операций с ресурсами
- Код состояния 10x: Целевой ресурс для запроса не существует или параметр содержит ошибку.
Системные ошибки
- Http 50x Internal Server Error: Внутренняя исключительная ситуация сервера или перехвачено исключение приложения. Рекомендуется протестировать на сайте или с использованием примера.
Рекомендации по лучшим практикам
- Обработка на клиенте: Рекомендуется определять успешность операции по полю
statusCode, а не только по коду состояния HTTP. - Повтор при ошибке: Для ошибок 5xx допустим разумный повтор запроса. Для ошибок 4xx необходимо проверить параметры запроса.
- Логирование: Рекомендуется записывать полный ответ об ошибке для упрощения диагностики проблем.
- Обработка таймаутов: Установите разумное время ожидания запроса, чтобы избежать длительного простоя.