Описание кодов ошибок Cloud recognition APIs
Формат ответа
Все ответы API используют единый формат JSON. Ниже приведен пример:
{
"statusCode": 422,
"reuslt": "The image or meta exceeds its maximum permitted size",
"timestamp": 1514736000000,
"appKey": "test_app_key"
}
| Field | Type | Описание |
|---|---|---|
| statusCode | integer | Business status code. 0 означает успех, non-0 означает ошибку |
| result | string | Возвращаемое содержимое. Когда status code равен 0, ответ содержит структуру target image object; иначе возвращается error message |
| timestamp | long | Server Unix timestamp в миллисекундах |
Важно
Только при statusCode == 0 result включает response content. В других состояниях result возвращает error message.
Категории error code
Описание HTTP status code
| HTTP status code | Описание |
|---|---|
| 200 | Request successful, может содержать business errors |
| 400 | Ошибка request parameter |
| 401 | APIKey authentication failed |
| 403 | Недостаточно permission или доступ к resource запрещен |
| 404 | Запрошенный URL interface Path не существует |
| 500 | Server internal error |
| 501 | Application exception captured, возможно data error |
| 502 | Server unavailable, обратитесь в customer service |
Примечание
Business errors обычно возвращаются через HTTP 200 responses, а конкретный тип ошибки указывается в поле statusCode.
Список business status code
| 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 |
Распространенные сценарии ошибок
Timeout без ответа
- Request Timeout: сеть относительно медленная. Рекомендуется проверить сетевую среду client
Ошибки, связанные с authentication
- Http 401 Unauthorized: APIKey authentication failed. Проверьте, корректны ли appId/appKey
- Status code 401: application key недействителен или application не существует. Проверьте application configuration
Parameter errors
- 400 Bad Request: ошибка формата request parameter
- Status code 414: обязательные parameters отсутствуют или значения parameters не соответствуют требованиям
Ошибки операций с resource
- Status code 404: запрашиваемый target resource не существует
- Status code 403: target уже существует и не может быть создан повторно
- Status code 417/420/424: операция add, delete или update не удалась
Ошибки, связанные с file
- Status code 422: размер загруженного file превышает ограничение
- Status code 427: формат image не поддерживается или file поврежден
System errors
- Http 500 Internal Server Error: server internal exception. Рекомендуется проверить на website или с sample
- Http 501 Exception: application exception captured, возможно data error. Рекомендуется проверить на website или с sample
- Http 502 Server: service response error, возможно server error. Свяжитесь с нами
Рекомендации best practice
- Обработка на client: рекомендуется определять успешность business по полю
statusCode, а не полагаться только на HTTP status code - Error retry: для ошибок 5xx можно выполнить retry, а для 4xx нужно проверить request parameters
- Запись log: рекомендуется записывать полный error response для troubleshooting
- Обработка timeout: задайте разумный request timeout, чтобы избежать длительного ожидания