ASP.NET WebApi vs MVC ?
WebApi allows to create services that can be exposed over HTTP rather than through a formal service such as WCF or SOAP. Another difference is in the way how WebApi uses Http protocol and makes it truly First class Http citizen.
UPDATE: The ASP.NET Core, Web API has been integrated into MVC project type. The ApiController
class is consolidated into the Controller
class. More at: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
A relevant link of comparison, discussions & tutorials:
- MVC5 vs WebApi Project
- Difference between ASP.NET MVC and ASP.NET Web API
- Introduction to ASP.NET Core includes MVC, Web API demos
- Getting Started with ASP.NET Web API tutorials
WebAPI spits out OData, so you get all of the advantages of using OData. For example, with WebAPI you get:
- Query options such as $filter, $top, $orderby, etc.
- With traditional MVC controllers you need to implement these yourself.
- Standardization of the format
- There are OData clients that will understand the underlying format of your RESTful API.