web-dev-qa-db-ja.com

wcf restfulサービスとWEB APIの違い

私は今、長い間質問しています。正確にどこでWEB APIを使用する必要があり、どこでWCF RESTfulサービスを使用する必要があります。 WCF Restで達成できるWEB APIで達成したいこと。私は答えを掘り下げようとしましたが、URIテンプレート、契約、エンドポイントなどのwcfで追加の設定を行う必要がありました。しかし、それは設定に関するものですが、WCF Restful Servicesを使用する背後にある本当の理由を知りたかったのです。

10
abhijit

Webサービス

  • SOAPに基づいており、XML形式でデータを返します。
  • HTTPプロトコルのみをサポートします。
  • オープンソースではありませんが、XMLを理解しているすべてのクライアントが使用できます。
  • IISでのみホストできます。


[〜#〜] wcf [〜#〜]

  • また、SOAPに基づいており、XML形式でデータを返します。
  • これは、Webサービス(ASMX)の進化であり、TCP、HTTP、HTTPS、名前付きパイプ、MSMQなどのさまざまなプロトコルをサポートしています。
  • WCFの主な問題は、退屈で広範な構成です。
  • オープンソースではありませんが、XMLを理解しているすべてのクライアントが使用できます。
  • アプリケーション内またはIISまたはウィンドウサービスを使用してホストできます。


WCF REST

  • WCFをWCF RESTサービスとして使用するには、webHttpBindingsを有効にする必要があります。
  • HTTP GETおよびPOST動詞[WebGet]および[WebInvoke]属性。
  • 他のHTTP動詞を有効にするには、IISで設定を行い、.svcファイル。
  • WebGetを使用してパラメーターを介してデータを渡すには、構成が必要です。 UriTemplateを指定する必要があります。
  • XML、JSON、およびATOMデータ形式をサポートしています。


Web API

  • これは、HTTPサービスを簡単かつ簡単に構築するための新しいフレームワークです。
  • Web APIは、.NET Frameworkを使用してRESTfulサービスを構築するための理想的なプラットフォームであるオープンソースです。
  • WCF RESTサービスとは異なり、HTTP、URI、リクエスト/レスポンスヘッダー、キャッシュ、バージョン管理、さまざまなコンテンツ形式など)のすべての機能を使用します。
  • また、ルーティング、コントローラー、アクション結果、フィルター、モデルバインダーなどのMVC機能、IOCコンテナーまたは依存性注入、より簡単で堅牢な単体テストもサポートしています。
  • アプリケーション内またはIISでホストできます。
  • 軽量のアーキテクチャであり、スマートフォンのような帯域幅が制限されているデバイスに適しています。
  • 応答は、Web APIのMediaTypeFormatterによってJSON、XML、またはMediaTypeFormatterとして追加する形式にフォーマットされます。


WCFまたはWeb APIの選択

  • 一方向メッセージング、メッセージキュー、二重通信などの特別なシナリオをサポートする必要があるサービスを作成する場合は、WCFを選択します。
  • TCP、名前付きパイプ、またはUDP(WCF 4.5)など、利用可能な高速トランスポートチャネルを使用できるサービスを作成する場合はWCFを選択し、他のすべてのトランスポートチャネルが利用できない場合もHTTPをサポートします。
  • HTTPのすべての機能(URI、要求/応答ヘッダー、キャッシング、バージョン管理、さまざまなコンテンツ形式など)を使用できるHTTP経由のリソース指向サービスを作成する場合は、Web APIを選択します。
  • ブラウザ、モバイル、iPhone、タブレットなどの幅広いクライアントにサービスを公開する場合は、Web APIを選択してください。

詳細については、 http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/ を参照してください。

21
Mohit