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