2011年2月10日

WCFサービスをRESTで利用する

WCFサービスは簡単にRESTで利用できます

既に作成したWCFサービスインタフェースに対して

  • 下記パッケージを追加

using System.ServiceModel.Web;

  • GETでメソッドで呼び出す場合 メソッドにWebGet属性追加

[WebGet(UriTemplate = "HelloWorld/{message}", ResponseFormat = WebMessageFormat.Json)]

messageはメソッドのパラメータ名

レスポンスデータのフォーマットはJSON、XMLにしたい場合はWebMessageFormat.Xmlに設定

  • POSTでメソッドで呼び出す場合 メソッドにWebInvoke属性追加

[WebInvoke(Method = "POST",
            UriTemplate = "HelloWorld2",
            RequestFormat = WebMessageFormat.Json,
            ResponseFormat = WebMessageFormat.Json)]

リクエスト/レスポンスデータのフォーマットはともにJSON

  • サービスホストを設定

設定方法は下記二種類があります

    1. svcファイルに下記属性追加 Factory="System.ServiceModel.Activation.WebServiceHostFactory"
    2. web.configファイルに下記追加
    3. <system.serviceModel>
        <services>
          <service name="ServiceClass">
            <endpoint address="" binding="webHttpBinding" bindingConfiguration=""
              contract="IService" behaviorConfiguration="webbeh" />
          </service>
        </services>
        <behaviors>
          <endpointBehaviors>
            <behavior name="webbeh">
              <webHttp />
            </behavior>
          </endpointBehaviors>
        </behaviors>
      </system.serviceModel>

0 件のコメント:

コメントを投稿