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]