Googleのスキルが低下しているかどうかわかりませんが、ローカルAPIをどのように消費するかわからないようです。これは最高のサンプルコードで説明することができる...Asp.Net Core APIをローカルで使用しています
だから私はシンプルなAPIを持って
public class FooApiController : Controller
{
public IActionResult GetFoo(int id)
{
if (id == 0)
return BadRequest();
var data = ... do db access
return Ok(data);
}
}
とビューコントローラ
public class FooController : Controller
{
public IActionResult Foo()
{
var api = new FooApiController();
var data = api.GetFoo(1);
ViewBag.Data = data;
return View();
}
}
したがって、上記のビューコントローラで、私はAPIを呼び出します必要なデータを取得します。しかし、APIコントローラがIActionResultを返すので、ViewBad.DataはIActionResultオブジェクトになります。だから、私は上記のAPI呼び出しのStatusCodeをチェックし、必要ならばエラーを処理し、そうでなければ、結果オブジェクト全体ではなく、単にViewBagにデータを入れるように変更します。
私が見つけたすべてのサンプルでは、View Controllerがajax呼び出しを使用してデータを取得するビューを返すように見えます。私は理解して簡単にそれを行うことができますが、私は必要がないときにサーバーに2回往復する考えが嫌いです。
私は別の往復を望んでいませんが、apiがdbコールを行い、そのサービスをビューコントローラで使用して同じdbコールを行うのに使用しないようにしてください。 – Woot
@Woot私はそれがおそらくよりクリーンであることを知っています。そこで、実際のデータオブジェクトを返すサービス、結果オブジェクト(データ保持)を返すAPIコントローラ、およびビュー(データ付き)を返すビューコントローラについて説明します。より効率的な方法があるようです。 –