是否可以在MVC控制器中使用/调用我的Web API方法? 我有一个Web Api用于移动和其他平台,我正在开发一个.NET Mvc网站。 这种架构有意义吗?
由于
答案 0 :(得分:2)
是的,但是如果您希望从许多不同的客户端使用您的API,我建议您将API创建为单独的应用程序,然后可以相应地进行管理/扩展。
基本上你指的是"狗食"您自己的API,使您自己的Web应用程序与任何其他客户端没有区别。
我们做了类似的事情,并让我们的MVC应用程序调用我们的API(使用HttpClient
)。我们在同一个应用程序中也有很多客户端代码,它们使用CORS直接调用API。
我们已经将这种架构在生产中运行了2年,现在没有任何问题。
答案 1 :(得分:1)
以下是我如何从MVC控制器调用我的Web API控制器:
public class invoiceController : ApiController
{
private myEntities db = new db1Entities();
// GET api/invoices
public IQueryable<invoices> Getinvoices()
{
return db.invoices;
}
}
在单独的MVC控制器中:
public ActionResult ShowInvoices()
{
var webApi = new invoicesController();
//this must return strongly typed object
var myarray = webApi.Getinvoices();
return View(myarray);
}