Hata İşleme

Hata yanıtlarını anlama ve uygulamanızda bunları nasıl ele alacağınızı öğrenme.

Hata Yanıt Formatı

Tüm hata yanıtları tutarlı bir JSON formatını takip eder:

{
  "success": false,
  "error": {
    "code": "HATA_KODU",
    "message": "İnsan tarafından okunabilir hata mesajı",
    "details": "Ek hata detayları (isteğe bağlı)"
  }
}

HTTP Durum Kodları

2xx - Başarılı

200 OK

İstek başarılı oldu.

201 Created

Kaynak başarıyla oluşturuldu.

4xx - İstemci Hataları

400 Bad Request

İstek geçersiz veya hatalı biçimlendirilmiş.

{
  "success": false,
  "error": {
    "code": "INVALID_REQUEST",
    "message": "Gerekli alan eksik: symbol"
  }
}
401 Unauthorized

Kimlik doğrulama başarısız veya token süresi doldu.

{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Geçersiz veya süresi dolmuş JWT token"
  }
}
403 Forbidden

Kaynağa erişim için yetersiz izinler.

{
  "success": false,
  "error": {
    "code": "FORBIDDEN",
    "message": "Bu kaynağa erişim izniniz yok"
  }
}
404 Not Found

İstenen kaynak bulunamadı.

{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "'XYZ' sembolü bulunamadı"
  }
}
429 Too Many Requests

İstek limiti aşıldı. İstek Limitleri'ne bakın.

{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "API istek limiti aşıldı",
    "retryAfter": 1800
  }
}

5xx - Sunucu Hataları

500 Internal Server Error

Sunucuda beklenmeyen bir hata oluştu.

{
  "success": false,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Beklenmeyen bir hata oluştu. Lütfen daha sonra tekrar deneyin."
  }
}
503 Service Unavailable

Hizmet geçici olarak kullanılamıyor.

{
  "success": false,
  "error": {
    "code": "SERVICE_UNAVAILABLE",
    "message": "Hizmet geçici olarak kullanılamıyor. Lütfen daha sonra tekrar deneyin."
  }
}

Yaygın Hata Kodları

Hata Kodu Açıklama
UNAUTHORIZED Geçersiz veya süresi dolmuş kimlik doğrulama token'ı
INVALID_API_KEY Sağlanan API anahtarı geçersiz
INVALID_REQUEST İstek gerekli alanları eksik veya geçersiz formata sahip
NOT_FOUND İstenen kaynak mevcut değil
RATE_LIMIT_EXCEEDED Belirli bir sürede çok fazla istek yapıldı
VALIDATION_ERROR Bir veya daha fazla alan doğrulamayı geçemedi
INTERNAL_ERROR İç sunucu hatası oluştu

Hata İşleme En İyi Uygulamaları

1. Her Zaman HTTP Durum Kodunu Kontrol Edin

Başarı varsaymayın - her zaman önce HTTP durum kodunu kontrol edin.

if (response.IsSuccessStatusCode)
{
    var data = await response.Content.ReadAsStringAsync();
    // Başarıyı işle
}
else if (response.StatusCode == HttpStatusCode.Unauthorized)
{
    // Token süresi doldu - yeniden kimlik doğrula
}
else
{
    // Diğer hataları işle
}

2. Yeniden Deneme Mantığı Uygulayın

Geçici hataları üstel geri çekilme ile yeniden deneyin.

import time
from requests.exceptions import RequestException

def make_request_with_retry(url, max_retries=3):
    for attempt in range(max_retries):
        try:
            response = requests.get(url)
            response.raise_for_status()
            return response.json()
        except RequestException as e:
            if attempt == max_retries - 1:
                raise
            wait_time = 2 ** attempt
            time.sleep(wait_time)

3. Hata Ayıklama İçin Hataları Kaydedin

Sorun giderme için hata yanıtlarını her zaman tam detaylarıyla kaydedin.

4. Token Süre Dolumunu Ele Alın

401 Unauthorized aldığınızda otomatik olarak yeniden kimlik doğrulayın.

Hala Sorun mu Yaşıyorsunuz?

Kalıcı hatalar yaşıyorsanız, istek detaylarınız ve hata mesajlarınızla birlikte destek ekibimizle iletişime geçin: [email protected]