我目前正在使用ASP.NET MVC和單個控制器進行「API」排序。我正在使用從每個操作方法調用的服務/存儲庫模式。ASP.NET MVC API與Web API異步
類似於下面:
存儲庫:
public IQueryable<Order> GetOrders()
{
return from sqlOrder in DB.Orders
select new Order
{
Id = sqlOrder.Id,
Name = sqlOrder.Name,
Price = sqlOrder.Price
};
}
服務:
public List<Order> GetOrders()
{
return Repo.GetOrders().ToList();
}
控制器/操作:
public JsonResult GetOrders()
{
var orders = Service.GetOrders();
return Json(orders, JsonRequestBehavior.AllowGet);
}
一切是偉大的工作,但我考慮轉移到WEB API和異步/等待
類似如下:
庫:(無變化)
public IQueryable<Order> GetOrders()
{
return from sqlOrder in DB.Orders
select new Venue
{
Id = sqlOrder.Id,
Name = sqlOrder.Name,
Price = sqlOrder.Price
};
}
服務:
public async Task<List<Order>> GetOrders()
{
return await Repo.GetOrders().ToListAsync();
}
控制器/行動:
[ResponseType(typeof(List<Order>))]
public async Task<IHttpActionResult> GetOrders()
{
var orders = await Service.GetOrders();
return Ok(orders);
}
首先,有沒有這種異步/等待和Repository模式有問題嗎?
使用原始MVC框架作爲端點的「API」有什麼主要缺點嗎?而不是使用「Web API」?
爲什麼投票..其不認爲我在尋找事實爲什麼切換到異步/等待 – aherrick 2014-11-06 14:18:32
不是d/v'ter,但你的問題可以解釋爲'爲什麼我應該移動'。也許澄清/編輯最後幾段來澄清這一點? – jbutler483 2014-11-06 14:21:25
不應該有任何缺點。功能基本相同,WebAPI只是提供更多RESTful-API驅動的語義方式來實現功能。正如你所建議的那樣,使用普通MVC可以實現同樣的功能。 – David 2014-11-06 14:27:44