Aku juga tidak.
Mengapa tidak 404 (Tidak Ditemukan)?
Kode status 404 harus disediakan untuk situasi, di mana sumber daya tidak ditemukan. Dalam kasus ini, sumber daya Anda adalah kumpulan pengguna . Koleksi ini ada tetapi saat ini kosong. Secara pribadi, saya akan sangat bingung sebagai penulis klien untuk aplikasi Anda jika saya mendapat 200
satu hari dan 404
hari berikutnya hanya karena seseorang kebetulan menghapus beberapa pengguna. Apa yang harus aku lakukan? Apakah URL saya salah? Apakah seseorang mengubah API dan lalai meninggalkan pengalihan.
Mengapa tidak 204 (Tidak Ada Konten)?
Berikut kutipan dari deskripsi kode status 204 oleh w3c
Server telah memenuhi permintaan tetapi tidak perlu mengembalikan badan-entitas, dan mungkin ingin mengembalikan metainformation yang diperbarui.
Meskipun ini mungkin tampak masuk akal dalam kasus ini, saya pikir itu juga akan membingungkan klien. A 204
seharusnya menunjukkan bahwa beberapa operasi berhasil dijalankan dan tidak ada data yang perlu dikembalikan. Ini sempurna sebagai respons terhadap DELETE
permintaan atau mungkin mengaktifkan beberapa skrip yang tidak perlu mengembalikan data. Dalam kasus api/users
, Anda biasanya mengharapkan untuk menerima representasi dari kumpulan pengguna Anda. Mengirim badan tanggapan satu kali dan tidak mengirimkannya di lain waktu tidak konsisten dan berpotensi menyesatkan.
Mengapa saya menggunakan 200 (OK)
Untuk alasan yang disebutkan di atas (konsistensi), saya akan mengembalikan representasi dari koleksi kosong. Anggaplah Anda menggunakan XML. Isi respons normal untuk kumpulan pengguna yang tidak kosong bisa terlihat seperti ini:
<users>
<user>
<id>1</id>
<name>Tom</name>
</user>
<user>
<id>2</id>
<name>IMB</name>
</user>
</users>
dan jika daftarnya kosong, Anda bisa menjawab dengan sesuatu seperti ini (sambil tetap menggunakan a 200
):
<users/>
Apa pun itu, klien menerima badan respons yang mengikuti format tertentu yang terkenal. Tidak ada kebingungan yang tidak perlu dan pemeriksaan kode status. Juga, tidak ada definisi kode status yang dilanggar. Semua orang senang.
Anda dapat melakukan hal yang sama dengan JSON atau HTML atau format apa pun yang Anda gunakan.