# Hata İşleme
## Birleşik Hata Yanıtı Formatı
Tüm API hataları, birleşik bir JSON biçimi döndürür:
```json
{
"code": 2010,
"message": "Insufficient credits",
"suggestion": "Please top up your account at https://platform.tripo3d.ai",
"request_id": "req_abc123"
}
```
| Alan | Tür | Açıklama |
| :-: | :-: | :-: |
| code | tamsayı | Hata kodu |
| message | dize | Hata açıklaması |
| suggestion | dize | Önerilen düzeltme |
| request_id | dize | Sorun giderme için benzersiz istek tanımlayıcı |
## HTTP Durum Kodları
| Durum Kodu | Anlamı | Açıklama |
| :-: | :-: | :-: |
| 200 | Başarı | İstek başarıyla işlendi |
| 400 | Geçersiz parametreler | Gerekli parametreler eksik veya hatalı biçimlendirilmiş |
| 401 | Kimliği doğrulanmamış | API Key eksik veya geçersiz |
| 403 | Yetersiz izinler | Kaynağa erişim izniniz yok veya kredileriniz yetersiz |
| 404 | Kaynak bulunamadı | İstenen görev veya kaynak mevcut değil |
| 429 | Çok fazla istek | Hız limiti aşıldı. İstek sıklığınızı azaltın |
| 500 | Servis hatası | Dahili sunucu hatası. Daha sonra tekrar deneyin |
## Hata Kodu Referansı
| Hata Kodu | Anlamı | Önerilen İşleme |
| :-: | :-: | :-: |
| 1000 | Geçersiz API Key | API Key'nin doğru mu yoksa silinmiş mi olduğunu kontrol edin |
| 1001 | Yetkisiz | İstek başlığının `Authorization` içerip içermediğini kontrol edin |
| 2000 | Oran sınırı aşıldı | Üstel geri çekilmeyle istek sıklığını azaltın ve yeniden denemeleri uygulayın |
| 2002 | Desteklenmeyen istek parametresi | İstek gövde alanı adlarının ve değerlerinin belgelerle eşleşip eşleşmediğini kontrol edin |
| 2003 | Boş giriş dosyası | Yüklenen dosyanın boş olmadığını ve geçerli bir format kullandığını doğrulayın |
| 2004 | Desteklenmeyen dosya türü | Dosya formatının desteklenen listede olup olmadığını kontrol edin |
| 2008 | İçerik politikası ihlali | Yasaklanmış kelime veya görsellerden kaçınmak için giriş içeriğini değiştirin |
| 2010 | Yetersiz kredi | Konsolda kredi yükleme |
| 2015 | Sürüm kullanımdan kaldırıldı | En son API sürümüne yükseltin |
| 2018 | Model çok karmaşık | Giriş modelinin karmaşıklığını veya poligon sayısını azaltın |
## Hata İşleme Örnekleri
### 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");
}
```
## Strateji Önerilerini Yeniden Deneyin
429 hız sınırı ve 500 hizmet hatası gibi yeniden denenebilir hatalar için üstel bir geri çekilme stratejisi kullanın:
1. İlk yeniden deneme: 1 saniye bekleyin
2. İkinci yeniden deneme: 2 saniye bekleyin
3. Üçüncü yeniden deneme: 4 saniye bekleyin
4. Maksimum yeniden deneme sayısını 5 veya daha az tutun
400, 401 ve 403 gibi yeniden denenemeyen hatalar için doğrudan bir istisna oluşturun ve temel sorunu düzeltin.
Hata İşleme
Birleşik Hata Yanıtı Formatı
Tüm API hataları, birleşik bir JSON biçimi döndürür:
JSON
{
"code":2010,
"message":"Insufficient credits",
"suggestion":"Please top up your account at https://platform.tripo3d.ai",
"request_id":"req_abc123"}
Alan
Tür
Açıklama
code
tamsayı
Hata kodu
message
dize
Hata açıklaması
suggestion
dize
Önerilen düzeltme
request_id
dize
Sorun giderme için benzersiz istek tanımlayıcı
HTTP Durum Kodları
Durum Kodu
Anlamı
Açıklama
200
Başarı
İstek başarıyla işlendi
400
Geçersiz parametreler
Gerekli parametreler eksik veya hatalı biçimlendirilmiş
401
Kimliği doğrulanmamış
API Key eksik veya geçersiz
403
Yetersiz izinler
Kaynağa erişim izniniz yok veya kredileriniz yetersiz
404
Kaynak bulunamadı
İstenen görev veya kaynak mevcut değil
429
Çok fazla istek
Hız limiti aşıldı. İstek sıklığınızı azaltın
500
Servis hatası
Dahili sunucu hatası. Daha sonra tekrar deneyin
Hata Kodu Referansı
Hata Kodu
Anlamı
Önerilen İşleme
1000
Geçersiz API Key
API Key’nin doğru mu yoksa silinmiş mi olduğunu kontrol edin
1001
Yetkisiz
İstek başlığının Authorization içerip içermediğini kontrol edin
2000
Oran sınırı aşıldı
Üstel geri çekilmeyle istek sıklığını azaltın ve yeniden denemeleri uygulayın
2002
Desteklenmeyen istek parametresi
İstek gövde alanı adlarının ve değerlerinin belgelerle eşleşip eşleşmediğini kontrol edin
2003
Boş giriş dosyası
Yüklenen dosyanın boş olmadığını ve geçerli bir format kullandığını doğrulayın
2004
Desteklenmeyen dosya türü
Dosya formatının desteklenen listede olup olmadığını kontrol edin
2008
İçerik politikası ihlali
Yasaklanmış kelime veya görsellerden kaçınmak için giriş içeriğini değiştirin
2010
Yetersiz kredi
Konsolda kredi yükleme
2015
Sürüm kullanımdan kaldırıldı
En son API sürümüne yükseltin
2018
Model çok karmaşık
Giriş modelinin karmaşıklığını veya poligon sayısını azaltın