Codes d'erreur de l'API analyse de sang
Comprendre les réponses d'erreur de l'API et comment les gérer.
Aperçu
L'API renvoie des réponses d'erreur standardisées avec des codes d'erreur spécifiques pour vous aider à identifier et résoudre rapidement les problèmes.
Format de la Réponse d'Erreur
Toutes les réponses d'erreur suivent cette structure :
{
"status": "error",
"error": {
"code": "AUTH_1001",
"message": "Identifiants d'authentification manquants",
"details": "Les champs 'username' et 'password' sont tous deux requis",
"timestamp": "2025-12-22T10:30:00Z"
}
}
| Champ | Type | Description |
|---|---|---|
status | string | Toujours "error" pour les réponses d'erreur |
error.code | string | Identifiant unique de l'erreur |
error.message | string | Message d'erreur lisible |
error.details | string | Contexte supplémentaire (optionnel) |
error.timestamp | string | Horodatage ISO 8601 |
Erreurs d'Authentification (1000-1099)
Erreurs liées aux identifiants et à l'authentification.
| Code | HTTP | Message | Solution |
|---|---|---|---|
AUTH_1001 |
401 | Identifiants d'authentification manquants | Incluez le nom d'utilisateur et le mot de passe dans la requête |
AUTH_1002 |
401 | Nom d'utilisateur ou mot de passe invalide | Vérifiez que les identifiants sont corrects |
AUTH_1003 |
403 | Compte temporairement verrouillé | Attendez avant de réessayer ou contactez le support |
Erreurs de Quota (1100-1199)
Erreurs liées au quota API et aux limites d'utilisation.
| Code | HTTP | Message | Solution |
|---|---|---|---|
QUOTA_1101 |
403 | Quota API insuffisant | Achetez plus de crédits ou vérifiez le quota |
QUOTA_1102 |
429 | Quota API dépassé | Attendez le renouvellement du quota ou mettez à niveau votre plan |
Erreurs de Validation (2000-2099)
Erreurs liées à la validation de la requête et aux données d'entrée.
| Code | HTTP | Message | Solution |
|---|---|---|---|
VAL_2001 |
400 | Aucun fichier téléchargé | Incluez un fichier dans la requête |
VAL_2002 |
400 | Format de fichier invalide | Utilisez les formats supportés : PDF, PNG, JPG, WEBP |
VAL_2003 |
400 | Plusieurs fichiers PDF non autorisés | Téléchargez un seul PDF ou plusieurs images |
VAL_2004 |
400 | PDF et images ne peuvent pas être mélangés | Téléchargez soit un PDF soit des images, pas les deux |
VAL_2005 |
400 | Code de langue non supporté | Utilisez un code de langue supporté |
Erreurs de Traitement (3000-3099)
Erreurs lors du traitement du document et de l'analyse IA.
| Code | HTTP | Message | Solution |
|---|---|---|---|
PROC_3001 |
500 | Échec du traitement du document | Vérifiez la qualité de l'image, réessayez la requête |
PROC_3002 |
500 | Échec de l'extraction des métadonnées | Assurez-vous que le document contient du texte lisible |
PROC_3003 |
500 | Échec de l'extraction des paramètres | Vérifiez que le format de l'analyse sanguine est reconnaissable |
PROC_3004 |
500 | Échec de la génération de l'interprétation | Réessayez la requête |
PROC_3006 |
504 | Délai de traitement dépassé | Réduisez la taille du fichier ou divisez en plusieurs requêtes |
PROC_3007 |
500 | Analyse échouée après plusieurs tentatives | Attendez et réessayez, ou contactez le support |
Erreurs Serveur (5000-5099)
Erreurs internes du serveur et problèmes de disponibilité du service.
| Code | HTTP | Message | Solution |
|---|---|---|---|
SRV_5001 |
500 | Erreur interne du serveur | Réessayez la requête, contactez le support si le problème persiste |
SRV_5002 |
503 | Service temporairement indisponible | Attendez et réessayez avec un backoff exponentiel |
Bonnes Pratiques de Gestion des Erreurs
Recommandations
- Vérifiez toujours le champ
status- Les réponses réussies ont"status": "success" - Implémentez une logique de réessai pour les erreurs transitoires (5xx) avec backoff exponentiel
- Enregistrez les codes d'erreur pour le débogage et la surveillance
- Affichez des messages conviviaux basés sur les codes d'erreur
- Utilisez les points d'accès sandbox pour tester la gestion des erreurs
Exemple de Gestion des Erreurs (JavaScript)
async function analyzeBloodTest(file) {
try {
const response = await fetch(API_URL, {
method: 'POST',
body: formData
});
const data = await response.json();
if (data.status === 'error') {
const errorCode = data.error.code;
switch (true) {
case errorCode.startsWith('AUTH_'):
throw new Error('Échec de l\'authentification. Vérifiez vos identifiants.');
case errorCode.startsWith('QUOTA_'):
throw new Error('Quota dépassé. Veuillez mettre à niveau votre plan.');
case errorCode.startsWith('VAL_'):
throw new Error('Requête invalide : ' + data.error.message);
case errorCode.startsWith('PROC_'):
// Réessayer pour les erreurs de traitement
return retryRequest(file);
default:
throw new Error('Une erreur s\'est produite. Veuillez réessayer.');
}
}
return data.data;
} catch (error) {
console.error('Erreur API :', error);
throw error;
}
}