На практике я всегда возвращал 200 с пустым списком.Тот факт, что список пуст, говорит потребителю, что, хотя с запросом ничего не пошло не так, с ним не связано никаких ресурсов.
204 - это справедливый компромисс между 200 и 404, но я думаю, чтоэто добавляет минимальное значение.
Я бы лично отказался от выбрасывания 404 на конечную точку, которая возвращает список, поскольку ожидается, что будут ситуации, когда список пуст (это потенциально слишком широкий оператор).Если запрос не выполняется из-за ресурса, связанного со списком, я определенно считаю 404 действительным (допустим, у вас был пользователь со списком шляп, а запрос на шляпы был для пользователя NOT FOUND).