2012-03-19 14 views
1

私はWeb APIをチェックしていますが、asp.net mvcとweb APIがどのように一緒に動作するのかよく分かりません。私自身のWeb APIを使用する必要があります

私はクライアント側でバックボーンを実装したいのですが、サーバー側にApiControllerまたは通常のコントローラを実装する必要があるかどうかはわかりません。

基本的なApiControllerにはベースコントローラと同じ機能がいくつかありますが、これは重複した機能につながりますが、わかりません。他のトレードオフは何でしょうか。

または、Webアプリケーション用のコントローラに提供してくれる公共サービス用のApiControllerを作成するだけですか?

+0

最後に何をしましたか? –

答えて

1

APIをご利用の場合は、ApiControllerを使用してください。あなたはWeb UIのことをやっている場合は、古典的なコントローラを使用してください。それが両方のために作られているのです。

0

これはバックボーンではなくKnockout.jsを使用していることを除いて、これは私が現在行っている状況とほぼ同じです。私は作成と編集のためのビューを持っており、それぞれのビュー内で、非常に複雑なKnockout.js UIを使用して、JSONのAjaxingをサーバーに送ります。

私はMVC3の下で、同じコントローラ内で多数のJsonResultメソッドを使用してビューをレンダリングしていました。私はMVC4のRCを試していましたが、Ajaxリクエスト用のAPIコントローラを使用する「ルート」(ホーホー)を下ろすかどうかを熟考していました。私は強く型付けされたHTTPクラスと、JSON.NETがより統合されているという事実が気に入っていますが、この段階では、私自身の内部使用のために別個のAPIコントローラを持っているという最終結果がちょうど良いとは言えませんでした。あなたのように、私はセキュリティに関して重複してしまったことに気がつきました。コンテンツタイプによって関連するロジックを分離することで、クリーナーよりも混乱が生じました。

この時点で(私は気まぐれであることは知られていましたが)私は現在のコンテキストで標準のMVCコントローラを使用し続けるつもりですが、最終的に光っている新しいWeb APIを使用する機会を得ますパブリックAPIを公開しています。

+0

私は今も標準のMVCコントローラを使い続けました。 – adriaanp

+0

どのようにしてセキュリティを重複してしまいましたか?コンテンツタイプの問題は何ですか? JSONをサポートしていませんか? – georgiosd

+0

私は、MvcApplicationのハンドラではなくAbstractControllerのInitalizeで要求認証を行い、ApiControllerはControllerとは別のスタックの一部であるため、HttpContextを共有ヘルパーメソッドに渡すことが最善の方法でした。好きです。 –

関連する問題