[WCF] WCF-Rest를 이용한 SOAP Receiver

2009. 11. 30. 12:58WEB/WebService

제안내용 : 노출된 Endpoint(Uri)를 통해 SOAP 메시지를 수신할 수 있는 서버 구축

 

  • WCF를 사용

 

  • 메시지에 대한 수신 및 응답

 

진행사항

 

1.REST는 잘 정의된 URI를 통해서 임의의 Object를 표현하는 방식이며, HTTP Verbs 즉, GET(fetch), PUT(update/insert or Append), DELETE를 통해 Object를 얻을 수 있음

 

2.ASP.NET Web Application Project를 VS 2008을 이용해서 만들고, add item에 New item하여, WCF Service를 추가

 

3.WebGet property는 HTTP Verb의 HTTP GET 방식이며, Representation Format은 XML이나, JSON을 지원하는 데, Xml format을 설정

 

   1: using System.Collections.Generic;
   2: using System.Runtime.Serialization;
   3: using System.ServiceModel;
   4: using System.ServiceModel.Web;
   5:  
   6: namespace EzbizTaxInvoice
   7: {    
   8:     [ServiceContract]
   9:     public interface IRESTFulWcfService
  10:     {
  11:         [OperationContract]
  12:         [WebGet(UriTemplate = "{_ResponseMessageProcess}", ResponseFormat = WebMessageFormat.Xml)]
  13:         List<ResponseData> ResponseMessageProcess(string _ResponseMessageProcess);
  14:     }
  15:
  16: }

4.응답 메시지 수신 및 응답

 

   1: /// <summary>
   2:         /// 응답 메세지 수신 및 처리
   3:         /// </summary>
   4:         /// <param name="_ResponseMessageProcess"></param>
   5:         /// <returns></returns>
   6:         public List<ResponseData> ResponseMessageProcess(string _ResponseMessageProcess)
   7:         {
   8:             List<ResponseData> lstResponseData = new List<ResponseData>();
   9:             ResponseData responseData=new ResponseData();
  10:             responseData.ResponseID="1";
  11:             responseData.ResponseMessage=_ResponseMessageProcess;
  12:             lstResponseData.Add(responseData);
  13:             return lstResponseData;
  14:         } 

5.REST 서비스를 위한 Web.config 설정

(webHttpBinding과 endpoint Behavior로써 webHttp를 지원하도록 Config에 설정)

   1: <system.serviceModel>
   2:     <services>     
   3:       <service name="EzbizTaxInvoice.RESTFulWcfService">
   4:         <endpoint address="" behaviorConfiguration="EzbizTaxInvoice.RESTFulWcfServiceBehavior" 
   5:           binding="webHttpBinding" contract="EzbizTaxInvoice.IRESTFulWcfService“>
   6:         </endpoint>
   7:       </service>
   8:     </services>
   9:     <behaviors>
  10:       <endpointBehaviors>
  11:         <behavior name="EzbizTaxInvoice.RESTFulWcfServiceBehavior">
  12:           <webHttp />
  13:         </behavior>
  14:       </endpointBehaviors>
  15:     </behaviors>
  16:   </system.serviceModel>

 

결과

 

 

이슈사항

  • 단일 메시지가 아닌 Multipart-MIME 메시지 수신 처리
  • 실제 인터넷을 통해 노출된 Endpoint 로 PC to PC 메시지 송수신 테스트 및 세금계산서 연동테스트
  • 수신 받은 메시지에 대한 전자서명 처리 및 검증