İçerikler

    Sunucu yanıtı 422 Unprocessable Entity

    HTTP Durum Kodu 422 (İşlenemez Varlık)

    HTTP durum kodu 422, sunucunun isteğin içeriğini anladığını ancak semantik hatalar nedeniyle işleyemediğini belirten bir koddur. Bu makalede, 422 durum kodunu ayrıntılı bir şekilde inceleyecek, kullanım alanlarını ve farklı programlama dillerinde hata düzeltme yöntemlerini ele alacağız.

    422 - Unprocessable Entity

    Durum Kodu 422'nin Anlamı ve Uygulama Alanları

    Durum kodu 422, istemciden gelen verilerin sunucu tarafından anlaşıldığını ancak işlenemediğini belirtir. Bu durum genellikle aşağıdaki koşullarda meydana gelir:

    • Yanlış veri formatı: İstenilen formatın dışında verilerin gönderilmesi.
    • Zorunlu alanların eksikliği: İstekte yer alması gereken ancak bulunmayan alanlar.
    • Desteklenmeyen değerler: Alanlarda geçerli olmayan veya beklenmeyen değerlerin bulunması.

    Pratik Örnekler

    Örnek 1: Form Doğrulama Hatası

    Bir istemci, bir form aracılığıyla veri gönderdiğinde, sunucu bu verileri doğrulamalıdır. Eğer formda hatalı veya eksik bilgiler varsa, sunucu 422 durumu ile yanıt verebilir.

    Örnek senaryo:

    1. Kullanıcı, formu doldurur ve gönderir.
    2. Sunucu, gönderilen verileri kontrol eder.
    3. Sunucu, gerekli alanların eksik olduğunu tespit eder ve 422 ile birlikte hata mesajı döner.

    Örnek 2: API Veri İşleme

    Bir API aracılığıyla sunucuya veri gönderildiğinde, sunucu verileri işleyemediğinde 422 kodunu dönebilir. Bu, gelen verilerdeki hatalardan kaynaklanabilir.

    Örnek senaryo:

    • İstemci, JSON formatında veri gönderir.
    • Sunucu, verileri işlerken hatalı bir alan bulur.
    • Sunucu, 422 durumu ve hatanın detaylarıyla birlikte yanıt verir.

    Örnek 3: Dosya Yükleme

    Kullanıcı, belirli bir formatta bir dosya yüklemeye çalıştığında, eğer dosya uygun değilse, sunucu 422 durumu ile yanıt verebilir.

    Örnek senaryo:

    • Kullanıcı, JPEG yerine PNG formatında bir dosya yüklemeye çalışır.
    • Sunucu, dosya formatının desteklenmediğini belirtir ve 422 kodu ile yanıtlar.

    Hataların Düzeltme Yöntemleri

    JavaScript Üzerinde Düzeltme

    Aşağıda, 422 hatasına neden olan basit bir örnek verilmiştir:

    
    const formData = { name: "", email: "[email protected]" }; // Eksik alan
    fetch('/submit', {
        method: 'POST',
        body: JSON.stringify(formData)
    });
    

    Bu hatayı düzeltmek için eksik alanların doldurulması gerekir:

    
    const formData = { name: "John Doe", email: "[email protected]" }; // Doğru veri
    fetch('/submit', {
        method: 'POST',
        body: JSON.stringify(formData)
    });
    

    Python Üzerinde Düzeltme

    Aşağıdaki örnek, yanlış bir istek yaratmaktadır:

    
    data = {"name": "", "email": "[email protected]"}  # Eksik alan
    response = requests.post('http://api.example.com/submit', json=data)
    

    Doğru bir doğrulama ile bu hatayı önlemek mümkündür:

    
    data = {"name": "John Doe", "email": "[email protected]"}  # Doğru veri
    response = requests.post('http://api.example.com/submit', json=data)
    

    PHP Üzerinde Düzeltme

    Aşağıdaki örnek, hatalı bir API çağrısını göstermektedir:

    
    $data = array("name" => "", "email" => "[email protected]"); // Eksik alan
    $response = $client->post('http://api.example.com/submit', $data);
    

    Doğru bir yapılandırma ile bu hatayı düzeltmek mümkündür:

    
    $data = array("name" => "John Doe", "email" => "[email protected]"); // Doğru veri
    $response = $client->post('http://api.example.com/submit', $data);
    

    422 Hatasının Önlenmesi İçin Öneriler

    • İstemci tarafında veri doğrulaması yapmak.
    • API gereksinimlerinin net bir şekilde belgelenmesi.
    • Hataların kaydedilmesi, teşhis sürecini kolaylaştırır.
    Durum Kodu Açıklama
    422 İstemci tarafından gönderilen veri anlaşıldı, ancak işlenemedi.
    400 İstek hatalı, sunucu isteği anlayamadı.
    404 İstenen kaynak bulunamadı.