誰もがMVCコントローラからAPIを呼び出す理由があります。
APIの目的は、そのようなアクションを要求するために必要な権限を持つものにデータを提供したり、何らかのデータ操作を行うことです。それでおしまい。
APIは、MVCアプリケーション、モバイルアプリ、JAVAアプリ、またはJavaScriptフロントエンドから呼び出されたかどうか、または他に何がわかっているかは気にしません。
もちろん、何らかの理由でメインAPIから別のAPIを呼び出すことは間違いありません。
WebApiからMVCコントローラを呼び出す理由は、基本的に通常のパラダイムの逆です。
あなたは正当な理由があるとします。 MVCアクション(コントローラメソッド)は、通常のAPIと同様に、ビューまたはデータを返すことができます。ビューを返すことも、Jsonデータを返すこともできます。実際、MVCアクションはWebApiエンドポイントのように振舞うことができ、同じ方法で呼び出すことができます。 URLを正しく取得するだけでよいので、WebApiは適切な資格を持つルートを介してMVCコントローラにコールします。
これをテストするには、いくつかのJsonデータを返す単純なMVCアクションを記述し、ブラウザで呼び出します。 URLを正しく作成すると、ブラウザにデータが表示されます。今度は、同じURLを使用し、ブラウザで行ったのと同じように、完全なURLを使用してWebApiコントローラから同様の要求を出します。あなたはMVCでこのような何かを持っていると仮定すると
:
public JsonResult DemoCall(int number)
{
return Json($"{number}", JsonRequestBehavior.AllowGet);
}
これは、基本的にはGETのWeb API呼び出しを模倣するが、私はにHomeControllerに、このメソッドを置きます。あなたは、あなたが結果を見るために、ブラウザにこのようなようなものを使用することができる、のは、それは、ポート55712上で動作するとしましょう、ウェブサイトを実行することができます:
http://localhost:55712/home/democall?number=3
ウェブAPIからあなたが今しなければならないすべて、このURLにget要求(例えばHttpClientを使用)を発行すると、データが取得されます。それで、あなたはそれで何をしたいのかを決めることができます。同じことがPOSTメソッドにも当てはまります。
本当に大きな質問は、WebApiからMVCアクションを呼び出す必要があるのはもちろんですが、実際に行う必要がある場合は非常に簡単です。他のAPIと同じように扱います。
質問は**です**? –
どのようにWeb APIを呼び出していますか? ajaxを使用して – Saineshwar