В зависимости от клиента это может вызвать различные проблемы.Некоторые клиенты взорвутся, если вы отправите дополнительные данные обратно.В этих случаях вы хотели бы сделать одну из трех вещей:
1 - добавить необязательные параметры
Если у вас было getProduct(int id)
, прежде чем вы изменили бы его на getProduct(int id, bool includeProvider = false)
Это позволит вамверните только то, что они ожидают, так как более старый клиент не будет отправлять includeprovider в запросе.
2- Удалите старый вызов и добавьте новый
Добавьте новый метод и удалите старый.
3- Версия вашего веб-сервиса
Продолжайте поддерживать свой веб-сервис, но создайте новый на /v2/<webservice>
, чтобы вы могли легко отслеживать клиентов в разных версиях с помощью регистрации.
Я предпочитаю 1 & 3
Каждый раз, когда я хочу добавить дополнительную информацию к вызову, я просто добавляю новое необязательное включение, которое затем включает новый элемент в xml ответа.Каждый раз, когда я изменяю функциональность или изменяю контракт, я создаю новую версию.
ПРИМЕЧАНИЕ. Если вы предоставите клиенту, мы могли бы лучше знать, как он обрабатывает дополнительные элементы в ответе.