# Gestion des erreurs
## Format de réponse d'erreur unifié
Toutes les erreurs API renvoient un format JSON unifié :
```json
{
"code": 2010,
"message": "Insufficient credits",
"suggestion": "Please top up your account at https://platform.tripo3d.ai",
"request_id": "req_abc123"
}
```
| Champ | Tapez | Descriptif |
| :-: | :-: | :-: |
| code | entier | Code d'erreur |
| message | chaîne | Description de l'erreur |
| suggestion | chaîne | Solution suggérée |
| request_id | chaîne | Identifiant de demande unique pour le dépannage |
## Codes d'état HTTP
| Code d'état | Signification | Descriptif |
| :-: | :-: | :-: |
| 200 | Succès | La demande a été traitée avec succès |
| 400 | Paramètres invalides | Les paramètres requis sont manquants ou mal formés |
| 401 | Non authentifié | Le API Key est manquant ou invalide |
| 403 | Autorisations insuffisantes | Vous n'avez pas la permission d'accéder à la ressource ou vos crédits sont insuffisants |
| 404 | Ressource introuvable | La tâche ou la ressource demandée n'existe pas |
| 429 | Trop de demandes | Limite de débit dépassée. Réduisez la fréquence de vos demandes |
| 500 | Erreur de service | Erreur de serveur interne. Réessayez plus tard |
## Référence du code d'erreur
| Code d'erreur | Signification | Manipulation recommandée |
| :-: | :-: | :-: |
| 1000 | API Key invalide | Vérifiez si le API Key est correct ou a été supprimé |
| 1001 | Non autorisé | Vérifiez si l'en-tête de la demande inclut `Authorization` |
| 2000 | Limite de débit dépassée | Réduisez la fréquence des requêtes et implémentez des tentatives avec une interruption exponentielle |
| 2002 | Paramètre de requête non pris en charge | Vérifiez si les noms et les valeurs des champs du corps de la requête correspondent à la documentation |
| 2003 | Fichier d'entrée vide | Confirmez que le fichier téléchargé n'est pas vide et utilise un format valide |
| 2004 | Type de fichier non pris en charge | Vérifiez si le format de fichier est dans la liste prise en charge |
| 2008 | Violation des règles relatives au contenu | Modifiez le contenu d'entrée pour éviter les mots ou les images interdits |
| 2010 | Crédits insuffisants | Recharger des crédits dans la console |
| 2015 | Version obsolète | Mise à niveau vers la dernière version de API |
| 2018 | Modèle trop complexe | Réduire la complexité ou le nombre de polycomptes du modèle d'entrée |
## Exemples de gestion des erreurs
### Python
```python
import time
import requests
def call_api_with_retry(url, headers, payload=None, max_retries=3):
for attempt in range(max_retries):
if payload:
response = requests.post(url, headers=headers, json=payload)
else:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
if response.status_code == 429:
wait = 2 ** attempt
print(f"Rate limit triggered. Retrying in {wait} seconds...")
time.sleep(wait)
continue
error = response.json()
raise Exception(
f"API error [{error['code']}]: {error['message']} "
f"(suggestion: {error.get('suggestion', 'none')})"
)
raise Exception("Maximum retry attempts exhausted")
```
### JavaScript
```javascript
async function callApiWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, options);
if (response.ok) {
return await response.json();
}
if (response.status === 429) {
const wait = 2 ** attempt * 1000;
console.log(`Rate limit triggered. Retrying in ${wait / 1000} seconds...`);
await new Promise(resolve => setTimeout(resolve, wait));
continue;
}
const error = await response.json();
throw new Error(
`API error [${error.code}]: ${error.message} (suggestion: ${error.suggestion || "none"})`
);
}
throw new Error("Maximum retry attempts exhausted");
}
```
## Recommandations relatives à la stratégie de nouvelle tentative
Pour les erreurs réessayables, telles que 429 limites de débit et 500 erreurs de service, utilisez une stratégie d'attente exponentielle :
1. Première tentative : attendez 1 seconde
2. Deuxième tentative : attendez 2 secondes
3. Troisième tentative : attendez 4 secondes
4. Maintenez le nombre maximum de tentatives à 5 ou moins
Pour les erreurs non réessayables, telles que 400, 401 et 403, générez directement une exception et corrigez le problème sous-jacent.
Gestion des erreurs
Format de réponse d’erreur unifié
Toutes les erreurs API renvoient un format JSON unifié :
JSON
{
"code":2010,
"message":"Insufficient credits",
"suggestion":"Please top up your account at https://platform.tripo3d.ai",
"request_id":"req_abc123"}
Champ
Tapez
Descriptif
code
entier
Code d’erreur
message
chaîne
Description de l’erreur
suggestion
chaîne
Solution suggérée
request_id
chaîne
Identifiant de demande unique pour le dépannage
Codes d’état HTTP
Code d’état
Signification
Descriptif
200
Succès
La demande a été traitée avec succès
400
Paramètres invalides
Les paramètres requis sont manquants ou mal formés
401
Non authentifié
Le API Key est manquant ou invalide
403
Autorisations insuffisantes
Vous n’avez pas la permission d’accéder à la ressource ou vos crédits sont insuffisants
404
Ressource introuvable
La tâche ou la ressource demandée n’existe pas
429
Trop de demandes
Limite de débit dépassée. Réduisez la fréquence de vos demandes
500
Erreur de service
Erreur de serveur interne. Réessayez plus tard
Référence du code d’erreur
Code d’erreur
Signification
Manipulation recommandée
1000
API Key invalide
Vérifiez si le API Key est correct ou a été supprimé
1001
Non autorisé
Vérifiez si l’en-tête de la demande inclut Authorization
2000
Limite de débit dépassée
Réduisez la fréquence des requêtes et implémentez des tentatives avec une interruption exponentielle
2002
Paramètre de requête non pris en charge
Vérifiez si les noms et les valeurs des champs du corps de la requête correspondent à la documentation
2003
Fichier d’entrée vide
Confirmez que le fichier téléchargé n’est pas vide et utilise un format valide
2004
Type de fichier non pris en charge
Vérifiez si le format de fichier est dans la liste prise en charge
2008
Violation des règles relatives au contenu
Modifiez le contenu d’entrée pour éviter les mots ou les images interdits
2010
Crédits insuffisants
Recharger des crédits dans la console
2015
Version obsolète
Mise à niveau vers la dernière version de API
2018
Modèle trop complexe
Réduire la complexité ou le nombre de polycomptes du modèle d’entrée