Ketika saya menggunakan API, sebagai klien saya harus menangani kasus "sukses" berbeda dari kasus "kesalahan"; Saya tidak punya pilihan di sana. Oleh karena itu, Anda harus mengembalikan kesalahan dalam situasi yang ingin diperlakukan berbeda oleh klien , dan sukses dalam situasi yang ingin diperlakukan sama oleh klien .
Jika saya melakukan kueri yang secara teori dapat mengembalikan sejumlah hasil, nol, satu, dua ratus dan seterusnya, maka Anda harus mengembalikan "sukses" setiap kali API memberikan daftar lengkap semua hasil. Dan mungkin dalam kasus di mana ada banyak hasil, Anda mengembalikan sebagian daftar hasil untuk menghindari ukuran yang berlebihan, dan ada cara yang disepakati bagaimana saya akan mendapatkan hasil lainnya. Itu karena sebagai klien, saya sering ingin menangani kasus hasil nol seperti kasus hasil lebih banyak. Saya mungkin memperlakukannya secara berbeda, tetapi saya tidak mau dipaksa.
Ini berbeda dalam hal saya mencari nilai. Saya mengharapkan satu hasil, nilai yang saya cari. Dan saya membutuhkan satu hasil untuk melanjutkan apa yang ingin saya lakukan dengan cara yang bermakna. Di sini jauh lebih dapat diterima untuk mengembalikan status 404 untuk kasus yang tidak ada nilainya di sana, karena saya memang perlu menangani kasus itu secara berbeda.
Ringkasan: Jika klien mengharapkan sejumlah hasil, dari nol hingga jumlah besar, maka kembalikan "sukses" jika semua hasil dikirimkan, bahkan jika jumlahnya nol. Jika klien mengharapkan tepat satu hasil, maka kembalikan sukses jika hasilnya ditemukan, dan kesalahan jika hasilnya tidak ditemukan.