web-dev-qa-db-ja.com

APIコントローラーとMVCコントローラーをいつ使用するか

WEBAPIとMVCの違いを知っています。また、asp.netコア1.0には、MVCとAPIの両方を処理するコントローラーのタイプが1つしかないことも認識しています。

ただし、最近多くのASP.NET MVCチュートリアルを見ていて、インストラクターがControllersフォルダー内にApiフォルダーを作成していることに気付きました。

このようにして、彼は主にViewModelsを処理するすべてのMVCコントローラーを分割し、View関数を使用して、主にDtosを処理し、ビューではなくデータを厳密に処理しているように見えるAPIコントローラーから表示するビューをMVCに指示します。

MVCアプリケーションにはAPIコントローラーはないと思いますか?特にコア1.0では、「コントローラー」という1つのクラスから継承します。しかし、AngularやKendoUIのようなフロントエンドフレームワークを組み込むと、通常はapiを介して実行したい多くのajaxリクエストを作成すると思います。

これが私の現在の理解です:
MVCコントローラーはMVC専用に使用し、表示するビューを指定したり、ビューモデルを渡したりする機能のみを使用します。

API Controllerは、主にajax呼び出しに使用し、ビューの初期ロードには使用せず、MVCCRUDパターンには使用しないでください。

これに関して誰かが私に従うべきより良い基準を与えることができますか?

7
Blake Rivell

ご指摘のとおり、.Net Coreには2つの違いはなく、「API」フォルダーの作成は純粋にプロジェクト編成用ですが、コントローラーは同じタイプです。

かなり単純なルールが必要な場合は、JSON/XML /データ(プレゼンテーション情報なし)を返すメソッドはすべて「API」コントローラーであり、HTMLを返すメソッドはすべて「MVC」コントローラーであるか、内部にない必要があります。 APIフォルダー。

12
Andy Raddatz