Ne yazık ki bu konuda yanılıyorsunuz - web api ve mvc denetleyicileri arasında tüm özniteliklerimi vb. Paylaşabileceğimi varsayıyorum, bu yüzden benim için büyük bir değişiklik görünmüyor.
Web API ve MVC tarafından kullanılan kavramların çoğu, ilk bakışta benzer olsalar da aslında uyumlu değildir. Örneğin, Web API öznitelikleri System.Web.Http.Filters.Filter
ve MVC öznitelikleri System.Web.Mvc.Filter
- ve birbirinin yerine kullanılamaz.
Aynısı diğer birçok kavram için de geçerlidir - model bağlama (tamamen farklı mekanizmalar), rotalar (Web API, her ikisi de aynı temel RouteTable üzerinde çalışsalar bile, Routes değil HTTPRoutes kullanır), bağımlılık çözümleyici (uyumlu değil) ve daha fazlası - yüzey, pratikte çok farklıdır. Dahası, Web API bir alan kavramına sahip değildir.
Nihayetinde, başarmaya çalıştığınız tek şey JSON içeriğini sunmanın "yeni, modaya uygun" bir yoluna sahip olmaksa - bu yola girmeden önce iki kez düşünün. Gerçekten HTTP'yi benimsemeyi ve uygulamanızı RESTful bir şekilde oluşturmayı düşünmüyorsanız, mevcut herhangi bir kodu yeniden düzenlemenizi kesinlikle önermem.
Her şey gerçekten ne inşa ettiğinize bağlı. Yeni bir projeye başlıyorsanız ve ihtiyacınız olan tek şey, web uygulamanızı kolaylaştırmak için biraz JSON sunmaktır - bazı potansiyel olarak yinelenen kodlarla (yukarıda bahsettiğim şeyler gibi) yaşamaya istekli olmanız koşuluyla, Web API kolayca içinde barındırılabilir. ASP.NET MVC ile aynı proje.
Çevrimiçi hizmetiniz için uygun bir API oluşturacaksanız - belki de harici müşteriler tarafından veya mobil uygulamalarınızı beslemek gibi çeşitli cihazlar tarafından tüketilecekse - Web API'yi ayrı bir projeye ayırırım.