Вы можете думать о веб-сервисе как об интерфейсе или API. Вы клиент этого интерфейса, API. Если интерфейс меняет вас как клиента, необходимо адаптировать ваш вызов. Нет хорошего способа справиться с этим. Обычно те, кто предоставляют API, должны поддерживать его стабильность и предлагать способы перехода на более новые версии и так далее. Но я полагаю, что вы не можете запросить это у службы погоды, о которой идет речь.
Теперь, чтобы справиться с частой сменой интерфейса, вы можете сделать следующее:
- создать свой собственный интерфейс, который определяет данные, которые вы хотите вернуть, это уровень абстракции.
- код вашего клиента в соответствии с вашим интерфейсом, который вы можете контролировать изменения
- реализовать свои интерфейсы, запросив метеослужбу 1 или метеослужбу 2. Это всего лишь отображение данных. Метеослужбы 1 и 2 могут быть совершенно разными службами, или вы можете думать об одной и той же службе с разными версиями. Никакой код вашего клиента не должен изменяться, только это сопоставление будет изменяться при изменении URL.
Это решение помогает вам легко переключаться между упомянутыми реализациями. То, что я описал, является решением вашей проблемы ООП, поэтому вам нужно будет использовать язык ООП, чтобы иметь полиморфное поведение.
Что касается последнего пункта, который вы могли бы выбрать, чтобы представить свой сервис (интерфейс, о котором я говорил выше) как сервис REST.