Итак, я немного новичок в веб-сервисах, и недавно появилась ситуация, когда мы добавили элемент в тип данных, который возвращается клиенту. Клиенты жаловались, что это нарушило их реализацию, потому что он задохнулся от нового элемента, которого он не ожидал. (мы предоставляем услуги через Axis2).
Для меня это кажется безобидным изменением, которое клиент должен иметь возможность обрабатывать изящно (я работал с некоторыми инфраструктурами без веб-сервиса, где добавление дополнительной информации было полностью приемлемым). Я мог бы понять, удалили ли мы или переименовали некоторые поля, которые могут вызвать проблемы для клиента.
В принципе, я ожидал бы, что wsdl будет действовать как интерфейс. Если мы внесем изменения, которые по сути являются подтипами этого интерфейса, я бы ожидал, что клиент с радостью проигнорирует посторонние элементы. Является ли это лишь кратковременным приходом веб-сервисов или существует разумный способ сделать пассивные изменения в сервисах, чтобы новые клиенты могли получать дополнительные данные, а старые клиенты могли обновлять их досуг?