Pada dasarnya, Web API
pengontrol adalah MVC
pengontrol, yang digunakan HttpMessageResponse
sebagai jenis dasar dari responsnya, bukan ActionResponse
. Mereka sama dalam banyak hal. Perbedaan utama antara tipe proyek adalah tipe MVC Application
proyek menambahkan hal-hal spesifik web seperti default CSS
, JavaScript
file dan sumber daya lain yang diperlukan untuk situs web, yang tidak diperlukan untuk API.
MVC digunakan untuk membuat situs web. Dalam hal ini Controllers
biasanya mengembalikan View
(yaitu respons HTML) ke permintaan browser. API Web di sisi lain biasanya dibuat untuk digunakan oleh aplikasi lain. Jika Anda ingin mengizinkan aplikasi lain untuk mengakses data / fungsionalitas Anda, Anda dapat membuat API Web untuk memfasilitasi akses ini. Misalnya, Facebook memiliki API untuk memungkinkan pengembang Aplikasi mengakses informasi tentang pengguna yang menggunakan Aplikasi. API Web tidak harus untuk konsumsi publik. Anda juga dapat membuat API untuk mendukung aplikasi Anda sendiri. Misalnya, kami membuat API Web untuk mendukung fungsionalitas AJAX dari situs web MVC kami.
Microsoft mengubah cara mereka menyajikan templat yang berbeda. Sekarang alih-alih menggunakan templat yang berbeda untuk jenis proyek yang berbeda, mereka mendorong pengembang untuk mencampur teknologi ASP.NET di dalam proyek yang sama sesuai kebutuhan. Microsoft menyebutnya vNext
.
UPDATE: Untuk ASP.NET Core, Web API telah diintegrasikan ke dalam jenis proyek MVC 6 dan ApiController
kelas tersebut dikonsolidasikan ke dalam Controller
kelas. Detail lebih lanjut di: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6