İçeriğe atla
Bizi takip edin:
ÖZEL YAZILIM VE ENDÜSTRİYEL ENTEGRASYON
KURUMSAL MİMARİ KOCAELİ & GEBZE SANAYİ BÖLGESİ

REST API Tasarımında HTTP Durum Kodları ve Hata Yönetimi

HEDEF SAHA & SEKTÖR Talaşlı İmalat, Otomotiv & Makine Sanayi
MİMARİ & STANDART Özel İmalat ERP · BOM · Saha WMS
TEMEL İŞ KAZANIMI Süreç Hızı ve Sıfır Manuel Hata
Yönetici Özeti: REST API tasarımında doğru HTTP durum kodları kullanımı: 200, 201, 400, 404, 422 ve RFC 7807 kurumsal hata formatı standartlarını eksiksiz şekilde öğrenin.

Hızlı Özet (TL;DR)

RESTful API mimarilerinde her HTTP isteği, istemciye işlemin sonucunu standart bir HTTP durum koduyla (Status Code) bildirmelidir. Yapılan en yaygın hata; hata durumlarında dahi gövde içinde { success: false } döndürerek HTTP 200 OK yanıtı vermektir. Başarılı veri oluşturmada 201 Created, doğrulama hatalarında 422 Unprocessable Entity, yetki eksikliğinde 401/403 kullanılmalı; hata yanıtları ise RFC 7807 Problem Details standardına göre yapılandırılmalıdır.

HTTP Durum Kodları Sınıfları ve Doğru Kullanım Kılavuzu

HTTP protokolünde durum kodları 5 ana sınıfa ayrılır. REST API tasarımında en sık kullanılan kodlar şunlardır:

Durum KoduAnlamıHangi Durumda Kullanılmalı?İdeal Yanıt Gövdesi
200 OKBaşarılıKaynak başarıyla okundu veya güncellendiTalep edilen veri nesnesi
201 CreatedOluşturulduPOST ile yeni bir kaynak başarıyla üretildiOluşturulan nesne ve Location başlığı
204 No Contentİçerik YokDELETE veya işlem başarılı ancak dönecek veri yokBoş yanıt gövdesi
400 Bad RequestHatalı İstekİstemcinin gönderdiği JSON sözdizimsel olarak bozukHata detay nesnesi
401 UnauthorizedYetkisizKimlik doğrulama yapılmamış (Token yok/geçersiz)Yetkilendirme hatası açıklaması
403 ForbiddenYasaklandıKimlik doğrulanmış ancak kaynağa yetkisi yokErişim engeli sebebi
404 Not FoundBulunamadıİstenen URI veya ID veritabanında mevcut değilKaynak bulunamadı mesajı
422 Unprocessableİşlenemez VeriJSON geçerli ancak iş kuralları ve validasyon geçersizAlan bazlı validasyon hataları
500 Internal ErrorSunucu HatasıBeklenmeyen kod istisnası (Exception) oluştuGenel sistem hatası (Hassas veri gizlenerek)

RFC 7807: Problem Details Standardı ile Hata Yanıtı Tasarımı

Her geliştiricinin farklı bir hata JSON formatı uydurması istemci (frontend/mobil) entegrasyonlarını zorlaştırır. IETF tarafından yayınlanan RFC 7807 (Problem Details for HTTP APIs) standardı tek tip kurumsal hata formatı sunar:

{
  "type": "https://api.maysayazilim.com/errors/validation-failed",
  "title": "İş Kuralları Doğrulama Hatası",
  "status": 422,
  "detail": "Gönderilen sipariş verisinde kritik alanlar eksik veya geçersiz.",
  "instance": "/orders/create/req-98412",
  "invalid_params": [
    {
      "name": "vergiNo",
      "reason": "Vergi numarası 10 haneli nümerik olmalıdır."
    },
    {
      "name": "miktar",
      "reason": "Sipariş miktarı 0'dan büyük olmalıdır."
    }
  ]
}

REST API Hata Yönetiminde Altın Kurallar

1. 200 OK İçinde Hata Gizlemeyin

Bazı eski mimarilerde ağ geçitlerinin veya frontend kütüphanelerinin hata yakalamasını engellemek için HTTP 200 dönülüp { "status": "error" } yazılır. Bu yaklaşım HTTP önbelleklemesini bozar, API Gateway izlemelerini yanıltır ve mikroservis iletişiminde hataların sessizce yutulmasına sebep olur.

2. Güvenlik Sebebiyle 500 Yanıtlarında Stack Trace Sızdırmayın

Üretim ortamında oluşan beklenmedik hatalarda veritabanı bağlantı dizesi, dosya yolları veya kod satır numaraları (Stack Trace) asla istemciye döndürülmemelidir. Bunun yerine benzersiz bir traceId dönülerek hata merkezi log sistemine yazılmalıdır.

Kurumsal web projelerinizde yüksek standartlı, ölçeklenebilir ve entegrasyona hazır API mimarileri geliştirmek için Özel Yazılım Geliştirme sayfamızı ziyaret edebilirsiniz.

BİLGİ BANKASI & VAKALAR

İlginizi Çekebilecek Diğer Rehberler

Sanayi dijitalleşmesi, siber güvenlik ve kurumsal yazılım alanında kapsamlı analizler.

Uygulama Hizmeti

Web Sayfası Tasarım

Bu makaledeki metodolojinin anahtar teslim proje adımları ve teknik teslim detayları.

Hizmeti inceleyin

İşinize uygun çözümü birlikte çıkaralım

İhtiyacınızı dinleyelim, kapsamı ve bütçeyi netleştirelim. İlk görüşme ücretsizdir.

Teklif Formu

Size buradan dönüş yapacağız; WhatsApp numaranız olması işimizi kolaylaştırır.

Talebiniz Alındı!

Mesajınız [email protected] adresine başarıyla iletildi.
En kısa sürede sizinle iletişime geçeceğiz.