2016-05-13 2 views
3

Я вижу, что большинство комментариев о методах веб-API говорят, что они должны возвращать IHttpActionResult. Когда я добавляю контроллер в Visual Studio, и я выбираю «Web API 2 Controller With Action For Entity Framework», он вводит эти два метода (вместе с POST, PUT и DELETE). Он использует IQueryable для возврата нескольких записей вместо IHttpActionResult. Что правильно и почему?Методы веб-API: возврат IHttpActionResult или IQueryable

 // GET: api/Trades 
 
     public IQueryable<Trade> GetTrades() 
 
     { 
 
      return db.Trades; 
 
     } 
 

 
     // GET: api/Trades/5 
 
     [ResponseType(typeof(Trade))] 
 
     public IHttpActionResult GetTrade(int id) 
 
     { 
 
      Trade trade = db.Trades.Find(id); 
 
      if (trade == null) 
 
      { 
 
       return NotFound(); 
 
      } 
 

 
      return Ok(trade); 
 
     }

ответ

3

Либо правильно. Удобство IQueryable заключается в том, что вы можете запросить его.

Например: вы можете использовать OData с WebAPI, где требуется определенная гибкость. Затем вы можете сделать ваши запросы AJAX, например mysite.com/odata/Orders?$filter=OrderID eq 1156.

Вот еще на OData: http://www.odata.org/

Это оказалось очень удобно для динамического поиска API с поддержкой постраничной.

Смежные вопросы