Я поддерживаю веб-службу SOAP (ASP.NET версии 2.0), и я должен внести некоторые изменения, которые изменят возвращаемые значения определенных методов.Каков наилучший способ для версии веб-службы ASP.NET 2.0?
Каков общепринятый способ сделать это без нарушения существующих реализаций.
Мои первоначальные мысли состоят в следующем: все возможно.
a) Предоставьте методы новой версии в рамках существующего веб-сервиса, например. getPerson_v1.4
b) Предоставьте полную копию файла .asmx с новым номером версии, например. Http: /www.example.com/AdminWS_V1_4.asmx. Это не идея, которую мне нравится, поскольку у службы более 50 методов и копирование этого кода для изменений в методы 2/3 кажется слишком большим дублированным кодом.
c) Переопределите конструктор веб-сервиса, чтобы разрешить передачу номера версии. Это, похоже, не работает, и по размышлению я не уверен, как это будет представлено в WSDL.
Есть ли общепринятый способ сделать это, или люди имеют советы, основанные на их опыте в этой области.
Я думаю, что это хороший способ сделать, и многие организации используют этот метод. Это ясно показывает, что пользователь обращается к другой версии службы. – BobbyShaftoe
Я бы включил это в свой список, поскольку он кажется разумным вариантом, однако веб-служба находится в комплекте с полным множеством других кодов, и все наши существующие пользователи будут ссылаться на сайт «Главная» (то есть без управления версиями) –
@Steve Weet, не будет ли это разрешено, продолжая этот пример и создавая directoy ala: http://www.example.com/soap/current/ - который будет просто переходить к самой новой версии? Помещение номеров версий на методы делает API сложным для новых пользователей, которые не интересуются всей историей ... – Thies