Описание кодов ошибок API распознавания облаков
Формат ответа
Все ответы API используют единый формат JSON. Пример ниже:
{
"statusCode": 422,
"reuslt": "The image or meta exceeds its maximum permitted size",
"timestamp": 1514736000000,
"appKey": "test_app_key"
}
| Поле | Тип | Описание |
|---|---|---|
| statusCode | integer | Бизнес-код состояния. 0 означает успех, не 0 означает ошибку |
| result | string | Возвращаемое содержимое. При коде состояния 0 возвращает структуру объекта целевого изображения, иначе возвращает сообщение об ошибке |
| timestamp | long | Метка времени сервера в формате Unix (в миллисекундах) |
Важно
Только при условии statusCode == 0, result включает содержимое ответа. В остальных случаях result возвращает сообщение об ошибке.
Классификация кодов ошибок
Пояснение кодов состояния HTTP
| Код состояния HTTP | Описание |
|---|---|
| 200 | Запрос успешен (может содержать бизнес-ошибку) |
| 400 | Ошибка параметров запроса |
| 401 | Сбой аутентификации APIKey |
| 403 | Недостаточно прав или доступ к ресурсу запрещен |
| 404 | Путь URL-интерфейса запроса не существует |
| 500 | Внутренняя ошибка сервера |
| 501 | Исключение приложения, возможно ошибка данных |
| 502 | Сервер недоступен, свяжитесь со службой поддержки |
Примечание
Бизнес-ошибки обычно возвращаются с ответом HTTP 200, конкретный тип ошибки идентифицируется в поле statusCode.
Таблица бизнес-кодов состояния
| Status Code | Message |
|---|---|
| 0 | ok |
| 1 | invalid appId (appKey) |
| 2 | invalid signature |
| 3 | invalid date |
| 4 | appId (appKey) not exist |
| 6 | invalid token |
| 6 | invalid appkey token |
| 7 | non-sdk client for dau databases |
| 8 | Dau databases are not compatible with sense-4.6+ any more. |
| 404 | Target not found |
| 414 | Parameter required not exists or not correct |
| 422 | The image or meta exceeds its maximum permitted size |
| 417 | fail to add image |
| 419 | Cannot update target in database because similar target exists. |
| 420 | Target delete failed |
| 424 | Target enable error |
| 403 | Target already exists |
| 426 | Judge exceeds maxium candidates |
| 427 | Image not correct |
Распространенные сценарии ошибок
Отсутствие ответа по таймауту
- Request Timeout: Сеть медленная, рекомендуется проверить сетевую среду клиента.
Ошибки аутентификации
- Http 401 Unauthorized: Сбой аутентификации APIKey, проверьте правильность appId/appKey.
- Код состояния 401: Неверный ключ приложения или приложение не существует, проверьте настройки приложения.
Ошибки параметров
- 400 Bad Request: Ошибка формата параметров запроса.
- Код состояния 414: Отсутствует обязательный параметр или значение параметра не соответствует требованиям.
Ошибки операций с ресурсами
- Код состояния 404: Запрашиваемый целевой ресурс не существует.
- Код состояния 403: Цель уже существует, невозможно создать повторно.
- Код состояния 417/420/424: Сбой операций добавления, удаления или изменения.
Ошибки, связанные с файлами
- Код состояния 422: Размер загружаемого файла превышает ограничение.
- Код состояния 427: Формат изображения не поддерживается или файл поврежден.
Системные ошибки
- Http 500 Internal Server Error: Внутреннее исключение сервера, рекомендуется протестировать на сайте или с помощью sample.
- Http 501 Exception: Исключение приложения, возможно ошибка данных, рекомендуется протестировать на сайте или с помощью sample.
- Http 502 Server: Ошибка ответа сервиса, возможно ошибка сервера, рекомендуется связаться с нами.
Рекомендации по лучшим практикам
- Обработка на стороне клиента: Рекомендуется определять успешность бизнес-операции по полю
statusCode, а не только по коду состояния HTTP. - Повтор при ошибках: Для ошибок 5xx можно выполнить повторный запрос, для ошибок 4xx необходимо проверить параметры запроса.
- Ведение журналов: Рекомендуется записывать полные ответы об ошибках для упрощения диагностики проблем.
- Обработка таймаутов: Установите разумное время ожидания запроса, чтобы избежать длительного ожидания.