Spiegazione dei codici di errore delle api di riconoscimento cloud
Formato di risposta
Tutte le risposte API utilizzano un formato JSON unificato. Di seguito un esempio:
{
"statusCode": 422,
"reuslt": "The image or meta exceeds its maximum permitted size",
"timestamp": 1514736000000,
"appKey": "test_app_key"
}
| Campo | Tipo | Descrizione |
|---|---|---|
| statusCode | integer | Codice di stato business. 0 indica successo, non 0 indica errore |
| result | string | Contenuto restituito. Se il codice di stato è 0, restituisce la struttura dell'oggetto immagine target; altrimenti restituisce un messaggio di errore |
| timestamp | long | Timestamp Unix del server (in millisecondi) |
Importante
La chiave result contiene il contenuto di risposta SOLO quando statusCode == 0. Negli altri casi, result restituisce un messaggio di errore.
Classificazione dei codici di errore
Spiegazione dei codici di stato http
| Codice di stato HTTP | Descrizione |
|---|---|
| 200 | Richiesta riuscita (può contenere errori business) |
| 400 | Errore nei parametri della richiesta |
| 401 | Autenticazione APIKey fallita |
| 403 | Permessi insufficienti o accesso alla risorsa vietato |
| 404 | Percorso URL dell'API richiesta non esistente |
| 500 | Errore interno del server |
| 501 | Eccezione dell'applicazione catturata, possibile errore nei dati |
| 502 | Server non disponibile, contattare l'assistenza |
Nota
Gli errori business vengono generalmente restituiti con risposta HTTP 200, identificati nel campo statusCode.
Tabella riepilogativa dei codici di stato business
| 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 |
Scenari di errore comuni
Nessuna risposta per timeout
- Request Timeout: Rete lenta, si consiglia di verificare l'ambiente di rete del client
Errori relativi all'autenticazione
- Http 401 Unauthorized: Autenticazione APIKey fallita, verificare la correttezza di appId/appKey
- Codice di stato 401: Chiave applicazione non valida o applicazione inesistente, verificare la configurazione dell'applicazione
Errori nei parametri
- 400 Bad Request: Formato dei parametri della richiesta errato
- Codice di stato 414: Parametro obbligatorio mancante o valore non conforme ai requisiti
Errori nelle operazioni sulle risorse
- Codice di stato 404: La risorsa target cercata non esiste
- Codice di stato 403: Target già esistente, impossibile crearlo nuovamente
- Codice di stato 417/420/424: Operazioni di aggiunta, eliminazione o modifica fallite
Errori relativi ai file
- Codice di stato 422: Dimensione del file caricato supera il limite consentito
- Codice di stato 427: Formato immagine non supportato o file danneggiato
Errori di sistema
- Http 500 Internal Server Error: Eccezione interna del server, si consiglia di testare sul sito web o con un sample
- Http 501 Exception: Eccezione dell'applicazione catturata, possibile errore nei dati, si consiglia di testare sul sito web o con un sample
- Http 502 Server: Errore di risposta del servizio, possibile errore del server, si consiglia di contattarci
Migliori pratiche consigliate
- Gestione lato client: Si consiglia di determinare il successo business in base al campo
statusCode, non solo al codice di stato HTTP - Riprova in caso di errore: Per errori 5xx è possibile effettuare tentativi di ripetizione; per errori 4xx verificare i parametri della richiesta
- Registrazione dei log: Si consiglia di registrare la risposta di errore completa per facilitare la risoluzione dei problemi
- Gestione dei timeout: Impostare un timeout di richiesta ragionevole per evitare attese prolungate