Это очень хороший вопрос.
Большинство обучающих программ с радостью скажут вам вернуть NotFound, который равен 404. Я полагаю, что этим людям никогда не приходилось создавать И поддерживать API производственного уровня.
Вы должны иметь некоторые соглашения и придерживаться их. Я предпочитаю возвращать 204 вместо 404. 204 означает, что вызовы были успешными, но контента не было. Таким образом, вы будете иметь четкую разницу между данными не существует и конечной точки не существует .
Что касается 500, ваш API никогда не должен возвращать 500, если на стороне сервера не произошло что-то действительно плохое и неисправимое. Я бы посоветовал не радостно бросать исключения для всего. Если ваши бизнес-правила не выполняются, это не повод бросать что-либо. Если ваш API не может получить доступ к вашей базе данных, это потребует 500, чтобы было очевидно, что произошло что-то действительно плохое. Что касается вашего сообщения о проблеме 500, я не согласен с этим. У IIS есть свои собственные журналы, у вашей службы будут свои собственные журналы, так что да, ваша инфраструктурная команда может отличаться.