大規模なASP.NET MVCアプリケーション用のAPIを作成したいと考えています。このアプリケーションは、すべてのビューに対して厳密に型指定されたビューモデルを使用します。 APIの最も重要な仕事は、iPhoneのObjective Cなどの他のプラットフォームでウェブサイトの機能を有効にすることです。ASP.NET MVCでAPIのViewModelsを再利用していますか?
これで、ViewModelsと既存のコントローラアクションを再利用して、ビューの代わりにコントローラによってビューモデルがJSONまたはAjaxの結果として返されるようにします。
しかし、ビューモデルには、APIにとっては必ずしも有用ではないような多くの合成情報が含まれているため、これについていくつかの議論があります。たとえば、一般的なAPI関数はGetRanking()です。 Ranking()アクションに属するビューモデルは、現在のユーザーの名前やランキングに関する説明など、実際にはより多くのデータを持っています。
これは、apiのアクションを個別に記述し、シリアル化されたドメインオブジェクトを返すか、現在のアクションとビューモデルを再利用し、不要なデータを無視するのが最もよい方法でしょうか?
コントローラのアクションを再利用するか、APIのアクションを個別に作成しますか? – Randam
それは正直言って戦術的決定のビットです。つまり、あなたのコントローラーはドメインレイヤーで本当の魔法が起こっているはずなので、シンプルで安価で使い捨てでなければならないので、おそらく別のセットのサービスコントローラーを実行するでしょう。 –