回答:
基本的に、Web API
コントローラーはMVC
コントローラーでありHttpMessageResponse
、の代わりに応答の基本タイプとして使用されActionResponse
ます。他のほとんどの点で同じです。プロジェクトタイプの主な違いは、プロジェクトタイプによって、APIには不要な、MVC Application
デフォルトCSS
、JavaScript
ファイル、およびWebサイトに必要なその他のリソースなどのWeb固有のものが追加されることです。
MVCは、Webサイトの作成に使用されます。この場合Controllers
、通常はView
ブラウザのリクエストに対して(つまりHTML応答)を返します。一方、Web APIは通常、他のアプリケーションによって消費されるように作られています。他のアプリケーションがデータ/機能にアクセスできるようにする場合は、このアクセスを容易にするWeb APIを作成できます。たとえば、Facebookには、アプリ開発者がアプリを使用するユーザーに関する情報にアクセスできるようにするためのAPIがあります。Web APIは一般消費用である必要はありません。独自のアプリケーションをサポートするAPIを作成することもできます。たとえば、MVC WebサイトのAJAX機能をサポートするWeb APIを作成しました。
マイクロソフトは、さまざまなテンプレートの表示方法を変更しました。現在は、プロジェクトの種類ごとに異なるテンプレートを使用する代わりに、必要に応じて同じプロジェクト内でASP.NETテクノロジを混在させることを開発者に奨励しています。マイクロソフトはこれをと呼びますvNext
。
更新: ASP.NET Coreでは、Web APIがMVC 6プロジェクトタイプにApiController
統合され、Controller
クラスがクラスに統合されました。詳細:https : //wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
私の2セント...
Controller
どうあるべきかを決定するView
-すなわち、コントローラは、彼らが要求を行う際に、ユーザは、(現在のシナリオまたはコンテキストに基づいて)「見る」べきかを決定します。ASPX
ページは、彼らが要求を行うときに、ユーザーが「見る」べきかを決定します。Web APIは、Webサイトのみに関連付けられているテクノロジーではありません。Webサイトだけでなく、複数の目的に使用できます。だからそれはの意味を知りませんrendering
参考文献
コントローラークラスから派生したMVCコントローラー。Mvcでは、ビューを返すことができます。MVCアーキテクチャは、アプリケーションの作成に使用します。ただし、Web APIはさまざまなアプリケーションにデータを提供するために使用されます。
Web APIはAPIコントローラーから駆動し、ビューを返しません。
注:MVCコントローラーからWeb APIを作成することもできますが、JsonResultまたは他のWeb APIがサポートする戻り値の型として結果を返す必要があります。