Beberapa server yang telah saya tangani akan mengembalikan HTTP 200 untuk permintaan yang seharusnya dianggap gagal oleh klien, dengan sesuatu seperti 'sukses: salah' di dalam tubuh.
Ini sepertinya bukan implementasi kode HTTP yang tepat bagi saya, terutama dalam kasus otentikasi gagal. Saya telah membaca kode kesalahan HTTP dengan ringkas yang diringkas sebagai, '4xx' menunjukkan bahwa permintaan tidak boleh dibuat lagi sampai diubah, sementara '5xx' menunjukkan bahwa permintaan mungkin atau mungkin tidak valid dan dapat dicoba kembali, tetapi tidak berhasil. Dalam hal ini 200: gagal masuk, atau 200: tidak dapat menemukan file itu, atau 200: tidak ada parameter x, pasti tampak salah.
Di sisi lain, saya bisa melihat argumen yang dibuat bahwa '4xx' seharusnya hanya mengindikasikan masalah struktural dengan permintaan. Sehingga layak untuk mengembalikan 200: pengguna / kata sandi buruk daripada 401 tidak sah karena klien diizinkan untuk membuat permintaan, tetapi itu ternyata tidak benar. Argumen ini dapat diringkas sebagai, jika server dapat memproses permintaan dan membuat keputusan sama sekali, kode respons seharusnya 200, dan terserah klien untuk memeriksa isi informasi lebih lanjut.
Pada dasarnya, ini sepertinya masalah pilihan. Tapi itu tidak memuaskan, jadi jika ada yang punya alasan mengapa salah satu dari paradigma ini lebih benar, saya ingin tahu.
success: false
menyiratkan bahwa permintaan gagal dan Anda mengetahuinya. Seharusnya 500. Sesuatu seperti nama pengguna / kata sandi Anda yang buruk akan menjadi 401. Ini tidak ambigu.