Sayangnya Anda salah tentang itu - Saya berasumsi bahwa saya dapat membagikan semua atribut saya dll antara api web dan pengontrol mvc jadi secara langsung, tampaknya itu bukan perubahan besar bagi saya.
Banyak konsep yang digunakan oleh Web API dan MVC, meskipun sekilas mirip, sebenarnya tidak kompatibel. Misalnya, atribut API Web adalah System.Web.Http.Filters.Filter
dan atribut MVC adalah System.Web.Mvc.Filter
- dan tidak dapat dipertukarkan.
Hal yang sama berlaku untuk banyak konsep lainnya - pengikatan model (mekanisme yang benar-benar berbeda), rute (API Web menggunakan HTTPRoutes bukan Routes, meskipun keduanya beroperasi pada RouteTable yang mendasari yang sama), resolver ketergantungan (tidak kompatibel) dan banyak lagi - meskipun serupa pada permukaan, sangat berbeda dalam praktiknya. Selain itu, API Web tidak memiliki konsep area.
Pada akhirnya, jika semua yang Anda coba capai adalah memiliki cara yang "baru, trendi" dalam menyajikan konten JSON - pikirkan dua kali sebelum mengambil jalan itu. Saya pasti tidak akan merekomendasikan refactoring kode yang ada kecuali Anda benar-benar ingin merangkul HTTP dan membangun aplikasi Anda dengan cara yang tenang.
Itu semua sangat tergantung pada apa yang Anda bangun. Jika Anda memulai proyek baru, dan yang Anda butuhkan hanyalah menyediakan beberapa JSON untuk memfasilitasi aplikasi web Anda - asalkan Anda bersedia untuk hidup dengan beberapa kode yang berpotensi duplikat (seperti hal yang saya sebutkan di atas), API Web dapat dengan mudah dihosting di dalam proyek yang sama dengan ASP.NET MVC.
Saya hanya akan memisahkan API Web ke dalam proyek terpisah jika Anda akan membangun API yang tepat untuk layanan online Anda - mungkin untuk digunakan oleh pelanggan eksternal, atau oleh berbagai perangkat - seperti mengisi aplikasi seluler Anda.