ASP.Net MVC4の「Web API」とは正確には何ですか?


15

Web APIとは何かを知っています。
APIを複数の言語(MVC3を含む)で記述しました。
私はASP.Netでもよく練習しています。
MVC4には「Web API」があることを発見しましたが、ビデオの例に目を通さずに、それが何であるかを正確に説明することはできません。
私の過去の経験から、Microsoftテクノロジー(特にASP.Net)は、単純なコンセプトを採用し、すべてを「より簡単にする」ことを目的とした無用のオーバーヘッドに包み込む傾向があります。
誰かがMVC4のWeb APIが何であるかを正確に説明してもらえますか?なぜ必要なのですか?独自のAPIを記述できないのはなぜですか?


3
新しいWeb APIフレームワークについて話しているのですか?これはMVCとは別のものです。それがあなたの言いたいことなら、リック・ストラルによるこのブログ投稿を見てください。
Oded

1
@Oded:これを答えにしてください。
ジェームズP.ライト

Web APIで最もクールなこと(受け入れられた回答または上記のリンクにリストされていないこと)は、IQueryable <>を返す場合、WebメソッドがODataクエリ構文を自動的にサポートすることです!-一般的なASP.NET 4.5スタックでは、「Web API」および「SignalR」はWCFを「置き換え」ます(WCFの上に構築されているかどうかはわかりませんが、WCFはすべてのブロック図から削除され、置き換えられています「Web API」および「SignalR」)。
BrainSlugs83

Why can't I just write my own API?通常のASP.NET MVCだけで?あなたはできる。ASP.NET MVC Web APIは、それを簡単にするための追加の特典を提供します。下記を参照してください。
ジムG.

回答:


16

ASP.NET Web APIは、RESTまたはRPCに関係なくHTTPサービスを構築するための「非意見」フレームワークです。MicrosoftのRFC 2616(HTTP仕様)の最適な実装です。

確かに独自のAPIを構築できますが、ASP.NET Web API:

  • レゴのようなモジュールをHTTPパイプラインに追加できるようにするロシアの人形モデルに基づいて構築
  • すべての一般的なヘッダーが(名前の値だけでなく)強く型付けされ、それらの解析に役立つように、HTTPをファーストクラスの市民にします。
  • ASP.NET(IIS)ホスティングまたはセルフホスティングの両方が可能
  • コンテンツネゴシエーション、メディアタイプをサポートしています...
  • 上から下に非同期です
  • HttpClientを使用するクライアントに同様のアプローチを使用します

6

Microsoft の新しいWeb APIは、その名前が示すとおり、RESTに重点を置いたWebアクセス可能なAPIの作成に関するものです。

Rick Strahlは最近ブログに書いており、MVCとWeb APIをいつ使用するかについての良い分析をしています。

組み込みのコンテンツネゴシエーション、いくつかの組み込みのフォーマットなど。


6

要するに、 ASP.NET Web APIにより、REST は.NETの第一級市民となり、WCFはそれを実際に受け入れることができませんでした。ご存知かもしれませんが、ASP.NET Web APIfor building web APIs.NET Frameworkの上にあるフレームワークです。

Web開発者が抱えていた最大の不満の1つは、WCFでの無限の構成に直面することでした。つまり、WCFは優れていますが、WCF Web APIフレームワーク以来RESTを採用していません。REST Starter Kitと呼ばれるものがありましたが、結局は死んでしまいました。

ただし、ASP.NET Web APIは次世代のフレームワークであり、ブラウザやモバイルデバイスなどの幅広いクライアントに到達するHTTPサービスを簡単に構築できます。.NET FrameworkでRESTfulアプリケーションを構築するための理想的なプラットフォームです。詳細および優れたブログ投稿については、ASP.NET Web APIブロガーのページをご覧ください


1
Web APIの歴史を調査する場合、WCFで始まりました。
SASS_Shooter

まあ、それは設定を簡単にし、アプリ開発を合理化する重要な機能を備えた軽量な代替品です。
ユスボフ

@Yusobov:これはまったく真実ではありません-Odata互換REST APIの構築に非常に優れているWCF Data Servicesもあります。私は実稼働環境でそれを使用してきましたが、一度設定すれば本当にうまく機能します。それに関する唯一の問題は、ASP.NET Web APIよりもセットアップがはるかに難しいことです。
エイドリアングリゴーレ14

1

ASP.NET Web APIは、ブラウザーやモバイルデバイスを含む幅広いクライアントに到達するHTTPサービスを簡単に構築できるフレームワークです。

ASP.NET Web APIは、.NET Framework上でRESTfulアプリケーションを構築するための理想的なプラットフォームです。

http://www.asp.net/web-api


編集:

具体的には、ASP.NET Web APIには次のものが含まれます。

  1. IISでサービスをホストすることを選択した場合、オーバーヘッドが削減された合理化されたASP.NETパイプライン
  2. クライアントがWeb APIに簡単に接続できるようにするHttpClient

私はそれらのものを自分で読むことができます。私の質問は、ポイントは何ですか?Web APIを使用し、通常のMVCを使用し、ViewResultsの代わりにJsonResultsを使用する場合の違いは何ですか?
ジェームズP.ライト

1. MVC 4より前は、JSONResultを問題なく返すことができました。MVC 4は単にその機能を保持し、他のヘルパークラスを含めて簡単にし、ViewResultsを返す必要がないことがわかっている場合にオーバーヘッドを削減するためにASP.NETパイプラインを合理化します。
ジムG.

1
また、これは事実上WCF Web APIの更新であるため、IISに依存していません。必要に応じて、ASP.NET Web APIサービスを自己ホストできます。wcf.codeplex.com/...
ジム・G.

-2

今日、ウェブベースのアプリケーションは顧客に届くのに十分ではありません。人々は非常に頭がよく、日常生活でiphone、モバイル、タブレットなどのデバイスを使用しています。これらのデバイスには、生活を楽にする多くのアプリもあります。実際、私たちはウェブからアプリの世界に向かっています。そのため、サービスデータをブラウザーに公開し、これらすべての最新デバイスアプリを高速かつ簡単に公開したい場合は、ブラウザーとこれらすべてのデバイスと互換性のあるAPIが必要です。


これは作られたポイントを超える大幅な何かを追加しているようだし、前4つの答えで説明していません
ブヨ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.