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