На время и ресурсы потраченные на задрачивание рест и вокруг, кажется, можно было еще один фейсбук создать или на марсе уже колонию организовать.
>Мне кажется что это две разные ошибки и что они должны возвращаться раздельно.
Мб я туплю к двум ночи, но как ни крути запросов два. Ну в одном случае по StatusId, а в другом по StatusId AND CountryCode. И второй запрос выглядит странно, чойто ты в базу ходишь вроде по айди, но как будто проверяешь еще и CountryCode. Не помню что где то видел такие запросы в живых проектах. Если в сервисе появится кешировие, то кешировать удобнее по StatusId, т.к. так себе идея держать кучу данных в кеше на один статус код с перебором разных CountryCode(зная такую реализацию еще и заспамить можно разными кодами).
Если бы я был пользователем апи, то я хотел бы понимать что конкретно не так с моим запросом, а не “ой”. Жутко хочется каждый раз на непонятное “объект не найден” применить горячий утюг, т.к. детализации шо за объект из участвующих в процессе и почему(мб сам дурак и запрос кривой) не найден не то чтобы очевидно.
Скрытие реальной причины может быть обосновано для каких нибудь финансовых сервисов, где нельзя сказать на запрос по честному “иван иваныч, вы - мошенник и давно хотим вас посадить на бутылку, но найти не можем”, а надо сказать “сорян, не удаётся выполнить перевод”.
Еще бытует мнение, что 400, 404 - транспортного уровня коды, а не бизнес логики, но это холиварно.