Коли я використовую API, як клієнт мені доводиться обробляти "успішні" випадки, відмінні від випадків "помилки"; У мене немає вибору там. Тому вам слід повернути помилку в ситуаціях, до яких клієнт хоче ставитися по-різному, і успіху в ситуаціях, коли клієнт хоче ставитися до того ж.
Якщо я роблю запит, який теоретично міг би повернути будь-яку кількість результатів, нуль, одну, двісті і так далі, то ви повинні повертати «успіх», коли API надає повний список усіх результатів. І, можливо, у випадках, коли результатів багато, ви повернули частковий список результатів, щоб уникнути зайвого розміру, і є узгоджений спосіб, як я отримав би інші результати. Це тому, що, як клієнт, мені часто хочеться обробляти випадок нульових результатів, як, наприклад, більше результатів. Я можу ставитися до цього по-різному, але я не хочу, щоб мене примушували.
У тому випадку, якщо я шукаю значення. Я очікую рівно одного результату - значення, яке я шукаю. І мені потрібен один результат, щоб продовжувати те, що я хочу зробити, змістовно. Тут набагато прийнятніше повернути статус 404 для випадку, коли немає значення, оскільки мені так чи інакше потрібно обробляти цей випадок.
Підсумок: Якщо клієнт очікує будь-якої кількості результатів - від нуля до великої кількості, то поверніть "успіх", якщо всі результати будуть доставлені, навіть якщо число дорівнює нулю. Якщо клієнт очікує рівно одного результату, тоді поверніть успіх, якщо результат буде знайдено, і помилка, якщо результат не буде знайдено.