Request body parse hatalarini, sunucudan once JSON tarafinda ayikla.
API'nin dondugu `400 Bad Request` mesaji cogu zaman fazla geneldir. Sorun trailing comma, tek tirnak, bozuk escape karakteri veya yanlis gonderilen body formatindan biri olabilir. Bu guide, JSON Formatter merkezli en hizli ayiklama akisini toplar.
4 adimli invalid JSON triage
-
1. Raw body'yi aynen ayir ve formatlamaya zorla
Body'yi postman, curl veya client log'undan aynen alin. JSON Formatter uzerinde validate/format denemesi yapin. Ilk parse hatasi hangi satir ve sutunda oldugunu gosterdiginde sorunu daraltirsiniz.
-
2. En yaygin syntax kusurlarini temizle
Trailing comma, tek tirnak, yorum satiri, bozuk escape ve cift tırnak eksikleri en yaygin nedenlerdir. Hata mesaji soyutsa bile ilk kontrol burasi olmalidir.
-
3. Calisan bir ornekle diff al
Bir endpoint daha once calistiysa o body'yi referans alin. JSON Diff/Compare ile yapisal farklari ayiklamak, gozle satir taramaktan daha hizlidir.
-
4. JSON sandiginiz seyin aslinda string veya encode veri olmadigini kontrol et
Bazen body icindeki alan JSON degil, Base64 veya kacisli string tasir. Ozellikle nested payload'larda once bu parcayi decode edip sonra parse etmek gerekir.
En sik 3 400 body nedeni
JavaScript objesi gibi yazilan body'ler JSON standardina uymayabilir. `{ 'id': 1, }` gibi yapilar parse edilmez.
Body JSON yerine JSON string olarak gonderilmis olabilir. Bu durumda parse edilen katmanla gonderilen katman farklidir.
Body teknik olarak duzgun olsa bile `application/json` yerine baska bir format bekleniyorsa ayni 400 parse sorunu gibi gorunebilir.
Bozuk ve duzeltilmis body yan yana
{
'userId': 42,
"items": ["a", "b",],
"meta": "{\"ok\":true}"
}
{
"userId": 42,
"items": ["a", "b"],
"meta": {
"ok": true
}
}
Bu use-case'te hangi araci ne zaman acarsin?
Sik sorulanlar
400 hatasi aldigimda once nereyi kontrol etmeliyim?
Ilk adim raw body'yi validate etmektir. Parse olmayan body'yi schema veya business logic seviyesine tasimadan once syntax seviyesinde ayirmak gerekir.
Tek tirnakli body neden bazen localde calisiyor gibi gorunur?
Cunku bazi araclar JavaScript object literal ile JSON'u zihinde karistirir. Ancak standard JSON anahtarlar ve stringler icin cift tirnak ister.
Calisan ornek varsa diff almak neden gerekli?
Cunku hata bazen tek bir escape farkindan ibarettir. Gozle taramaktansa yapisal diff dogrudan sapmayi gosterir.
Invalid JSON 400 akisini simdi daralt
Body'yi once parse ettirip sonra calisan ornekle karsilastirmak, 400 mesajinin arkasindaki gercek syntax kusurunu cok daha hizli buldurur. Once JSON Formatter ile validate edin, sonra gerekiyorsa diff ve nested decode katmanina gecin.