Hata Kodları ve Yönetimi
API hatalarını anlama ve ele alma
Hata Yanıt Formatı
Tüm hata yanıtları standart formatı kullanır:
{
"error": {
"code": "ERROR_CODE",
"message": "İnsan tarafından okunabilir hata mesajı",
"details": "Ek bağlam (isteğe bağlı)"
}
} 💡 Kararlı dallanma koşulu olarak error.code kullanın (message değişebilir)
HTTP Durum Kodları
200 OK
İstek başarılı
201 Created
Kaynak oluşturma başarılı
400 Bad Request
Geçersiz istek parametreleri
{
"code": "INVALID_REQUEST",
"message": "Geçersiz istek formatı"
} 401 Unauthorized
Kimlik doğrulaması yapılmamış veya geçersiz API anahtarı
{
"code": "UNAUTHORIZED",
"message": "Geçersiz veya süresi dolmuş API anahtarı"
} 403 Forbidden
Yetersiz hesap bakiyesi veya izin yok
{
"code": "INSUFFICIENT_BALANCE",
"message": "Yetersiz hesap bakiyesi"
} 404 Not Found
Kaynak bulunamadı
{
"code": "ORDER_NOT_FOUND",
"message": "Sipariş bulunamadı"
} 409 Conflict
Kaynak çakışması
{
"code": "ADDRESS_EXISTS",
"message": "Adres zaten mevcut"
} 429 Too Many Requests
API anahtarı hız limiti aşıldı
{
"code": "RATE_LIMITED",
"message": "Hız limiti aşıldı"
} 500 Internal Server Error
Sunucu iç hatası
{
"code": "INTERNAL_ERROR",
"message": "Beklenmeyen bir hata oluştu"
} 503 Service Unavailable
Hizmet geçici olarak kullanılamıyor (bakımda)
{
"code": "SERVICE_UNAVAILABLE",
"message": "Hizmet geçici olarak kullanılamıyor"
} Yaygın Hata Kodları
| Error Code | Status | Description | Solution |
|---|---|---|---|
| UNAUTHORIZED | 401 | Geçersiz, süresi dolmuş veya iptal edilmiş API anahtarı | API anahtarının doğru olup olmadığını kontrol edin, gerekirse yeni bir tane oluşturun |
| INSUFFICIENT_BALANCE | 403 | Yetersiz hesap bakiyesi | Hesabı yeniden yükleyin |
| INVALID_ADDRESS | 400 | Geçersiz TRON adres formatı | Adresin geçerli bir TRON adresi olup olmadığını kontrol edin (T ile başlar) |
| INVALID_ENERGY_AMOUNT | 400 | Geçersiz enerji miktarı | Enerji miktarı pozitif bir tam sayı olmalıdır, USDT transferi için 65000 önerilir |
| INVALID_DURATION | 400 | Geçersiz kiralama süresi | Geçerli süreleri kullanın: 1H, 1D, 3D, 7D, 14D, 30D |
| ORDER_NOT_FOUND | 404 | Sipariş mevcut değil | Sipariş ID'sinin doğru olup olmadığını kontrol edin |
| ADDRESS_EXISTS | 409 | Adres zaten mevcut | Adresin zaten eklenip eklenmediğini kontrol edin veya mevcut adresi kullanın |
| RATE_LIMITED | 429 | API anahtarı hız limiti aşıldı (şu anda yalnızca POST /v1/wallet/recharges için geçerli) | Üstel geri çekilme ile yeniden deneme uygulayın veya çağrı sıklığını azaltın |
Nasıl Ele Alınır
| Error | Handling |
|---|---|
| 401 UNAUTHORIZED | API anahtarını kontrol edin/döndürün |
| 403 INSUFFICIENT_BALANCE | Yeniden yükleyin veya talep edilen miktarı azaltın |
| 409 ADDRESS_EXISTS | Sorgulama/idempotent işleme geçin |
| 429 RATE_LIMITED | Geri çekilme ile yeniden deneyin (varsa Retry-After'ı takip edin, yoksa üstel geri çekilme kullanın) |
| 5xx | Yeniden deneyin + istek bağlamını günlüğe kaydedin |
Yeniden Deneme Yönergeleri
- • maksimum yeniden deneme: 3 kez
- • geri çekilme: üstel (1s, 2s, 4s...)
- • yalnızca 429/5xx için yeniden deneyin
- • 4xx için yeniden denemeyin (istemci tarafı hatası)