2

今日、私はASP.netWebAPIについてたくさん読みました。トランスポートとしてHTTPのみを必要とするWebサービスが必要な場合は、ASP.net APIを使用でき、WCFは必要ないということを正しく理解していますか?これまでのところ、WebAPIはWCFよりもはるかに使いやすいように見えます。

最高のトーマス

4

1 に答える 1

4

あなたの質問に対する答えは基本的にイエスです。a)HTTPのみを使用したい、b)コンテンツをXMLまたはJSONとして返したい、c)RESTful APIを使用したい、d)高度なメッセージング機能を必要としない場合は、WebAPIが最善の策です。ご指摘のとおり、WCFよりもはるかに使いやすいです。

Webサービスを作成する場合、2つの基本的なオプションがあります。SOAPベースのサービスまたはRESTfulAPIです。SOAPベースのサービスを使用している場合は、WCFを使用する必要があります。RESTfulサービスを使用している場合は、WebAPIを使用する必要があります。これに関する詳細については、このブログ投稿を参照してください:http: //blogs.microsoft.co.il/blogs/idof/archive/2012/03/05/wcf-or-asp-net-web-apis-my- 2-cents-on-the-subject.aspx

余談ですが、SOAPとRESTのどちらを選択するかは、状況の詳細によって異なります。一般的なガイドラインは次のとおりです。

SOAPサービスを支持する要因:

  • あなたはサービスの唯一の消費者であるか、消費者の限られた宇宙があります
  • トランザクション、WS-Security、信頼性の高いメッセージングなどの高度な機能が必要です
  • サービスは、TCP、MSMQ、名前付きパイプなど、HTTP以外の他のトランスポートを介して公開する必要があります。
  • 公開される機能は、エンティティまたはコレクションのCRUD操作に簡単にマッピングされません
  • 複雑な型の強い型付けのサポートが必要です
  • ネットワーク帯域幅の問題は問題ではありません

RESTfulサービスを支持する要因:

  • サービスは多数のクライアント(つまりインターネット)によって消費される必要があります
  • トランザクション、WS-Security、信頼性の高いメッセージングなどの高度な機能は必要ありません
  • HTTP経由でのみ公開されるサービスに受け入れ可能
  • 機能は、エンティティまたはコレクションのCRUD操作に簡単にマッピングできます
  • JSONやYAMLなどの他のメディアタイプのサポートが必要です
  • ネットワーク帯域幅に関する考慮事項

編集: コメントに応じて、WCF / SOAPを使用すると、SOAPでサポートされているさまざまな機能を使用できるようになります。これには、トランザクション、信頼性の高いメッセージング、さまざまなメッセージングパターン(一方向、二重など)、WS-Securityなどが含まれます。これらの標準はOASIS標準機関によって維持されており、一般にWS-*と呼ばれます。WS-*標準のリストはここにあります。

Web API / RESTを使用している場合、WS-*機能を使用することはできません。ただし、IISおよびASP.Netで利用可能な標準の認証技術を使用して、RESTfulサービスへのアクセスを認証および承認することは引き続き可能です。詳細については、次のリンクを参照してください。

http://codebetter.com/johnvpetersen/2012/04/02/making-your-asp-net-web-apis-secure/

http://stevescodingblog.co.uk/basic-authentication-with-asp-net-webapi/

そしてこれらのブログ投稿のいくつか。

于 2012-11-23T17:43:24.033 に答える