Bir test, geçersiz bir e-posta formatıyla
Bu response, API testi açısından neden kötü tasarlanmış?
POST /accounts gönderiyor ve şunu alıyor:{"status": 200, "body": {"id": null, "error": "invalid email"}}Bu response, API testi açısından neden kötü tasarlanmış?
- a200 status, önce status'e bakan her istemciye başarı der; hata body'nin içinde gizli kalır✓
- bGerçekte ne yanlış gittiğinden bağımsız olarak, response body'sinde asla "error" kelimesi geçmemelidir
- cOluşturma başarısız olduğunda
idalanınullyerine rastgele üretilmiş bir placeholder değer içermelidir - dJSON response'lar validation hatalarını tanımlayamaz; hata bilgisi yalnızca HTTP header'larında taşınabilir
Açıklama:Birçok istemci (ve basit monitoring) önce status code'a göre dallanır; 200 "bu işe yaradı" der, body'ye inmeyen bir istemci reddedilmiş, geçersiz bir isteği başarı sanır. Çözüm, gerçekte olanla eşleşen bir 4xx status'tür (örn. 400/422), üzerine body'deki detay eklenir. "error" kelimesinden kaçınmak (b) kozmetiktir ve alakasızdır, sahte bir placeholder id (c) başarısızlığı başarıya daha da çok benzetir, hata detayının body'de olması header'lardan bağımsız olarak doğaldır (d).