Я давно пользуюсь этим сайтом, обычно могу разобраться в своих вопросах, просматривая вопросы и следуя тэгам. Однако недавно я столкнулся с вопросом, который довольно трудно найти среди множества заданных вопросов - вопрос, на который, я надеюсь, некоторые из вас смогут поделиться своим мнением.
Поскольку мою проблему немного сложно уместить в одну строку, в заголовке я попытаюсь рассказать немного подробнее о проблеме, с которой я столкнулся. Итак, как видно из заголовка, мне нужно отфильтровать или ограничить некоторые данные ответов, которые возвращает мой стандартный веб-сервис на основе Soap ASP.NET при вызове различных веб-методов. Веб-сервис используется для возврата данных, используемых другими системами (хранилище данных более или менее), где клиент сегодня может указать несколько параметров о том, как данные должны быть отфильтрованы, и в ответ вернуть полный набор данных.
Ну, я подумал, достаточно просто, просто добавьте дополнительные опции фильтрации к существующим веб-методам, которые должны быть немного более отфильтрованы, внесите коррективы на стороне сервера, и мы все готовы к работе - что ж, к сожалению, получилось быть немного сложнее, чем это.
Проблема, с которой я сталкиваюсь, заключается в том, что я работаю над веб-службой, работающей в производственной среде, которая должна быть расширена таким образом, чтобы дополнительные фильтры можно было применять к существующему веб-методу, который вызывается без влияния на вызовы сделанный другими системами, используемыми клиентом, используя их клиентские окурки. Это то, где я немного обеспокоен, так как я не могу найти «правильное решение» для расширения текущего веб-сервиса.
Сегодня фильтр отправляется в виде пользовательской структуры данных, которая содержит информацию, по которой должны фильтроваться данные, но я не уверен, смогу ли я просто просто добавить больше информации в эту структуру данных без нарушения кода на клиентах? Один из моих коллег предложил мне реализовать решение, в котором я бы расширил web.config на стороне сервера, чтобы он содержал раздел с подробной информацией о том, какие данные должны быть исключены (отфильтрованы), но я не нахожу это быть жизнеспособным решением дальновидным - и я не доверяю клиентам такой вариант, так как это может пойти не так в какой-то момент. Таким образом, решение, которое я ищу, - это способ, которым я могу применить «второй фильтр» к данным, которые я запрашиваю у клиента, поэтому вместо получения полного набора данных он должен давать только часть, реализованную таким образом. что фильтр может быть легко изменен и не должен влиять на текущие клиентские вызовы.
Любые предложения о том, как мне следует подойти к этой проблеме?
Спасибо!
С уважением,
E.