Temel olarak, bir Web APIdenetleyici, yanıtının temel türü olarak MVCkullanan bir denetleyicidir . Diğer açılardan da aynıdır. Proje türleri arasındaki temel fark, proje türünün varsayılan değer , web sitesi için gereken ve API için gerekli olmayan diğer kaynaklar gibi web'e özgü şeyler eklemesidir.HttpMessageResponseActionResponseMVC ApplicationCSSJavaScript
MVC web siteleri oluşturmak için kullanılır. Bu durumda Controllersgenellikle Viewtarayıcı isteklerine bir (yani HTML yanıtı) döndürün. Öte yandan web API'leri genellikle diğer uygulamalar tarafından tüketilir. Diğer uygulamaların verilerinize / işlevlerinize erişmesine izin vermek istiyorsanız, bu erişimi kolaylaştırmak için bir Web API'si oluşturabilirsiniz. Örneğin, Facebook'un Uygulama geliştiricilerin Uygulamayı kullanan kullanıcılar hakkındaki bilgilere erişmesine izin vermek için bir API'si vardır. Web API'lerinin kamu tüketimi için olması gerekmez. Ayrıca, kendi uygulamalarınızı desteklemek için bir API oluşturabilirsiniz. Örneğin, MVC web sitemizin AJAX işlevselliğini desteklemek için bir Web API oluşturduk.
Microsoft, farklı şablonları sunma yöntemlerini değiştirdi. Şimdi, farklı proje türleri için farklı şablonlar kullanmak yerine, geliştiricileri ASP.NET teknolojilerini gerektiği gibi aynı proje içinde karıştırmaya teşvik ediyorlar. Microsoft bunu çağırıyor vNext.
GÜNCELLEME: ASP.NET Core için, Web API MVC 6 proje türüne entegre edilmiştir ve ApiControllersınıf sınıfa birleştirilir Controller. Daha fazla bilgi için: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6