2012-12-16 6 views
0

저는 이전 CMS 호스팅 API 대신 WCF 서비스를 사용하고 있습니다. 이전 시스템/데이터베이스의 각 클라이언트 사이트에 대한URI/URL을 기반으로하는 기능이 포함 된 WCF 웹 서비스

그것은 다음과 같이 작동

이 clientdomain.comhostingdomain.com/clientdomain/api.xml을의 URL에서 그 내용 (XML)을 (끌어 .XML 확장은 정말 clientdomain에 따라 XML) 예를 들어

로 수출 고전적인 ASP 페이지입니다 : clientdomain.com/photos는 hostingdomain 피드/clientdomain/사진/api.xml

그리고 같은 API를 .xml 파일은 모든 cl에 사용됩니다. ient 도메인/clientdomain2 /photos/api.xml 등의 도메인.

나는 추측하고 같은 인터페이스 설정에서 :

[OperationContract] 
     [WebInvoke(Method = "GET", 
      ResponseFormat = WebMessageFormat.Json, 
      BodyStyle = WebMessageBodyStyle.Wrapped, 
      UriTemplate = "*clientdomain*/photos")] 
     //method 
     List<APIContentObject> GetPhotosBySiteID(); 

/I가 URITemplate에 clientdomain을 변경하려면 어떻게 제가 DB에서 얻을 목록/배열에서 공급하기 위해 할 수있는 ... 또는 그 결과로/client1/photos와/client2/photos가 UriTemplates로 사용 가능하다는 것을 알 수 있습니다. 아니면 뭔가 빠졌습니까? ... WCF에서이 전체 URI/URL 문제에 문제가 있습니다 ...

나는 약간 다를 수 있으며 photos.clientdomain.com과 같은 것을 사용하고 모든 것을 추가 할 수 있습니다. 도메인을 호스트 헤더로 사용하고 .... ... .. 그 경로를 따라 무엇인가? WCF와 모든 재즈에서 모범 사례와 보안이 무엇이든간에.

이 목적은 결국 모바일 앱과 웹 사이트가 모두이 WCF에서 가져 오기위한 것입니다. (뿐만 아니라 푸시/끌어 오기 관리 애플 리케이션)

이전 시스템은 꽤 재미 있고 내가 떠날거야 뭔가를 IIS 속이는 고전적인 ASP 물건을 사용 ... 그래서 ... 어떤 아이디어?

답변

0

URL 템플릿은 운영 계약 방법의 매개 변수를 채울 수 있습니다. 다음과 같은 내용 :

[OperationContract] 
     [WebInvoke(Method = "GET", 
      ResponseFormat = WebMessageFormat.Json, 
      BodyStyle = WebMessageBodyStyle.Wrapped, 
      UriTemplate = "{clientdomain}/photos")] 
     //method 
      List<APIContentObject> GetPhotos(string clientdomain) 
{ 
    //Look up clientdomain in DB and return the right thing 
}