У меня есть api / v1 / users / search uri в проекте Web API 2.2. Этот URI принимает объект UserSearchRequest. Вот образец:
{
"DomainName":"ad.corp.domain",
"NetworkUserId":"jsmith2",
"FirstName":"John",
"LastName":"Smith"
}
Логика поиска в бэкэнде добавит все предоставленные значения параметров запроса для фильтрации набора возвращаемых пользователей. В противном случае пустой объект запроса приведет к возвращению всех пользователей. Однако, если клиент передает запрос, подобный следующему, тогда все пользователи будут возвращены:
{
"UserName":"jsmith2"
}
В приведенном выше примере вместо NetworkUserId по ошибке был использован недопустимый объект UserName. Однако вместо того, чтобы веб-API возвращал ошибку, он просто игнорировал дополнительное свойство и возвращал всех пользователей, поскольку не были предоставлены допустимые значения свойств критериев поиска.
Каким будет правильный способ проверки входящего запроса, чтобы в случае предоставления неверного имени prpoerty Web API возвращал 404 BadRequest и предпочтительно указывал неверное имя свойства?