Фильтрация данных в веб-сервисах ASP.NET - PullRequest
2 голосов
/ 07 июня 2011

Я давно пользуюсь этим сайтом, обычно могу разобраться в своих вопросах, просматривая вопросы и следуя тэгам. Однако недавно я столкнулся с вопросом, который довольно трудно найти среди множества заданных вопросов - вопрос, на который, я надеюсь, некоторые из вас смогут поделиться своим мнением.

Поскольку мою проблему немного сложно уместить в одну строку, в заголовке я попытаюсь рассказать немного подробнее о проблеме, с которой я столкнулся. Итак, как видно из заголовка, мне нужно отфильтровать или ограничить некоторые данные ответов, которые возвращает мой стандартный веб-сервис на основе Soap ASP.NET при вызове различных веб-методов. Веб-сервис используется для возврата данных, используемых другими системами (хранилище данных более или менее), где клиент сегодня может указать несколько параметров о том, как данные должны быть отфильтрованы, и в ответ вернуть полный набор данных.

Ну, я подумал, достаточно просто, просто добавьте дополнительные опции фильтрации к существующим веб-методам, которые должны быть немного более отфильтрованы, внесите коррективы на стороне сервера, и мы все готовы к работе - что ж, к сожалению, получилось быть немного сложнее, чем это.

Проблема, с которой я сталкиваюсь, заключается в том, что я работаю над веб-службой, работающей в производственной среде, которая должна быть расширена таким образом, чтобы дополнительные фильтры можно было применять к существующему веб-методу, который вызывается без влияния на вызовы сделанный другими системами, используемыми клиентом, используя их клиентские окурки. Это то, где я немного обеспокоен, так как я не могу найти «правильное решение» для расширения текущего веб-сервиса.

Сегодня фильтр отправляется в виде пользовательской структуры данных, которая содержит информацию, по которой должны фильтроваться данные, но я не уверен, смогу ли я просто просто добавить больше информации в эту структуру данных без нарушения кода на клиентах? Один из моих коллег предложил мне реализовать решение, в котором я бы расширил web.config на стороне сервера, чтобы он содержал раздел с подробной информацией о том, какие данные должны быть исключены (отфильтрованы), но я не нахожу это быть жизнеспособным решением дальновидным - и я не доверяю клиентам такой вариант, так как это может пойти не так в какой-то момент. Таким образом, решение, которое я ищу, - это способ, которым я могу применить «второй фильтр» к данным, которые я запрашиваю у клиента, поэтому вместо получения полного набора данных он должен давать только часть, реализованную таким образом. что фильтр может быть легко изменен и не должен влиять на текущие клиентские вызовы.

Любые предложения о том, как мне следует подойти к этой проблеме?

Спасибо! С уважением, E.

1 Ответ

1 голос
/ 07 июня 2011

Довольно распространенной практикой является создание другого экземпляра приложения ИЛИ использование части URL-адреса для обозначения версии конечной точки, к которой они подключаются, возможно, виртуальный каталог является датой.Таким образом, старые вызовы перейдут к старому API, а новые вызовы - к новому API.

http://api.example.com/dostuff

против

http://api.example.com/6-7-2011/dostuff 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...