Я пытаюсь придумать правильный дизайн для веб-службы. По сути, эта служба будет выполнять поиск клиентов в ряде разрозненных систем и возвращать результаты.
Теперь к клиенту можно прикрепить различную информацию - например, различные части контактной информации, их адрес (а), личная информация. Часть этой информации может быть сложно получить из некоторых систем, поэтому, если потребитель не собирается ее использовать, я бы хотел, чтобы у них был какой-то способ сообщить об этом веб-службе.
Одним из очевидных подходов было бы иметь разные методы для разных комбинаций требуемых деталей - но с ростом комбинаций растет и количество методов. Другой подход, который я рассмотрел, заключается в добавлении двух параметров строкового массива к вызову метода, где один массив представляет собой список необходимых элементов (например, мне требуется контактная информация), а другой - необязательные элементы (например, если вы собираетесь в любом случае, напишите их имена, вы можете вернуть это мне).
Третий подход заключается в добавлении дополнительных методов для извлечения деталей. Но это взорвет количество поездок туда и обратно, если мне понадобятся все детали для сотен клиентов, которые составляют результат.
Если честно, я не уверен, что мне нравится какой-либо из вышеперечисленных подходов. Итак, как бы вы разработали такую общую службу поиска клиентов?
(Рассматривается CW, поскольку не может быть ни одного «правильного» ответа, но я подожду и посмотрю, какие ответы приходят)