Dengan pengontrol ASP.NET MVC Anda dapat mengekspos data Anda dalam berbagai format. AspNetWebAPI dirancang secara eksplisit untuk membuat API tetapi saya dapat dengan mudah melakukannya dengan pengontrol MVC, tidak jelas bagi saya dalam hal apa akan lebih baik daripada pengontrol MVC tradisional. Saya tertarik pada skenario di mana manfaat WebApi jelas dan layak untuk menambahkan lapisan kompleksitas lain ke aplikasi saya.
Pertanyaan: apa kelebihan dan / atau kekurangan menggunakan asp.net WebApi sehubungan dengan MVC?
asp.net-mvc
asp.net-web-api
Hugo Zapata
sumber
sumber
Jawaban:
WebApi memungkinkan untuk membuat layanan yang dapat diekspos melalui HTTP daripada melalui layanan formal seperti WCF atau SOAP. Perbedaan lainnya adalah cara WebApi menggunakan protokol Http dan menjadikannya warga negara Http kelas satu.
PEMBARUAN: Inti ASP.NET, Web API telah diintegrasikan ke dalam jenis proyek MVC. The
ApiController
kelas dikonsolidasikan ke dalamController
kelas. Lebih banyak di: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6Tautan perbandingan, diskusi & tutorial yang relevan:
sumber
WebAPI memuntahkan OData, sehingga Anda mendapatkan semua keuntungan menggunakan OData. Misalnya, dengan WebAPI Anda dapatkan:
sumber
API Web Asp.Net VS Asp.Net MVC 1 . Asp.Net MVC digunakan untuk membuat aplikasi web yang mengembalikan tampilan dan data, tetapi Asp.Net Web API digunakan untuk membuat layanan HTTP penuh dengan cara mudah dan sederhana yang mengembalikan hanya data yang tidak dilihat.
2 . Web API membantu membangun layanan REST-ful di atas .NET Framework dan juga mendukung negosiasi konten (ini tentang menentukan data format respons terbaik yang dapat diterima oleh klien. Bisa saja JSON, XML, ATOM atau data yang diformat lainnya ), hosting mandiri yang tidak ada di MVC.
3 . Web API juga menangani pengembalian data dalam format tertentu seperti JSON, XML atau lainnya berdasarkan header Terima dalam permintaan dan Anda tidak khawatir tentang itu. MVC hanya mengembalikan data dalam format JSON menggunakan JsonResult.
4 . Di Web API permintaan dipetakan ke tindakan berdasarkan kata kerja HTTP tetapi dalam MVC itu dipetakan ke nama tindakan.
5 . Asp.Net Web API adalah kerangka kerja baru dan bagian dari kerangka kerja inti ASP.NET. Penjilidan model, filter, perutean, dan fitur MVC lainnya yang ada di Web API berbeda dari MVC dan ada di perakitan System.Web.Http baru. Di MVC, patung-patung ini ada dengan di System.Web.Mvc. Karenanya Web API juga dapat digunakan dengan Asp.Net dan sebagai lapisan layanan yang berdiri sendiri.
6 . Anda dapat mencampur API Web dan pengontrol MVC dalam satu proyek untuk menangani permintaan AJAX tingkat lanjut yang dapat mengembalikan data dalam format JSON, XML atau lainnya dan membangun layanan HTTP penuh. Biasanya, ini akan disebut hosting mandiri API Web.
7 . Ketika Anda memiliki MVC campuran dan pengontrol API Web dan Anda ingin menerapkan otorisasi maka Anda harus membuat dua filter satu untuk MVC dan satu lagi untuk Web API karena keduanya berbeda.
8 . Selain itu, API Web adalah arsitektur yang ringan dan selain aplikasi web juga dapat digunakan dengan aplikasi ponsel pintar.
Sumber asli ada di sini
sumber
Kesamaan
1) keduanya mewarisi dari ihhtphandler untuk asyncrequest jadi pada dasarnya apicontroller atau mvc controller keduanya adalah pembungkus di web.http
Perbedaan: 1) kontroler mvc sangat berat jika Anda dapat melihat definisi Anda, Anda dapat melihat berapa banyak antarmuka dan kode dasar yang digunakan, api web adalah pengontrol yang lebih ringan dan membedakan permintaan dengan parameter yang dilewatinya (ya kami dapat mengubahnya juga! )
2) Pengontrol MVC memiliki terlalu banyak fitur seperti mengembalikan tampilan, hasil tindakan, hasil javascript dll tetapi dalam web api memiliki JSON atau XML
3) API adalah untuk mengimplementasikan layanan Restful (get, post, put, delete, options) yang dapat di-host secara mandiri di mana saja tanpa tergantung pada tampilan, pengontrol MVC tidak dapat mendukungnya karena terintegrasi erat dengan pandangan.
sumber
Gambar ini tampaknya menunjukkan perbedaan dan persamaan dalam hal ini. Saya harap bantuan itu menarik bagi saya.
sumber
Pada titik tertentu Anda mungkin ingin bersama-sama melupakan ASP.NET MVC. Jika Anda seorang pengembang .NET tetapi Anda ingin membangun aplikasi Satu Halaman (menggunakan Angular misalnya) Anda akan menginginkan manfaat dari layanan RESTful (WebAPI) tanpa semua mengasapi yang tidak perlu yang datang dengan ASP.NET MVC.
sumber
ASP.NET MVC Dan ASP.NET Web api keduanya menggunakan untuk tujuan yang berbeda
ASP.NET
ASP.NET menawarkan tiga kerangka kerja untuk membuat aplikasi web: Formulir Web, ASP.NET MVC, dan ASP.NET Web Pages. Ketiga kerangka kerja ini stabil dan matang, dan Anda dapat membuat aplikasi web yang hebat dengan semua itu. Apa pun kerangka yang Anda pilih, Anda akan mendapatkan semua manfaat dan fitur ASP.NET di mana-mana.
Setiap kerangka kerja menargetkan gaya pengembangan yang berbeda. Yang Anda pilih tergantung pada kombinasi aset pemrograman Anda (pengetahuan, keterampilan, dan pengalaman pengembangan), jenis aplikasi yang Anda buat, dan pendekatan pengembangan yang Anda sukai. Ketiga kerangka kerja akan didukung, diperbarui, dan ditingkatkan dalam rilis ASP.NET mendatang.
MVC
ASP.NET MVC memberi Anda cara yang kuat dan berbasis pola untuk membangun situs web dinamis yang memungkinkan pemisahan kekhawatiran secara bersih dan yang memberi Anda kontrol penuh atas markup untuk pengembangan yang cepat dan menyenangkan. ASP.NET MVC mencakup banyak fitur yang memungkinkan pengembangan cepat, ramah TDD untuk membuat aplikasi canggih yang menggunakan standar web terbaru.
API web
ASP.NET Web API adalah kerangka kerja yang membuatnya mudah untuk membangun layanan HTTP yang menjangkau berbagai klien, termasuk browser dan perangkat seluler. ASP.NET Web API adalah platform yang ideal untuk membangun aplikasi RESTful di .NET Framework.
Anda dapat membaca formulir lebih lanjut di sini http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html
sumber
ASP.NET MVC berfokus pada membuat keluaran HTML menjadi mudah. ASP.NET Web API berfokus untuk membuat keluaran data mentah menjadi mudah.
Di dunia WebForms, ASP.NET MVC akan setara dengan halaman .aspx dan ASP.NET Web API akan menjadi .asmx
sumber
Asp.Net MVC digunakan untuk membuat aplikasi web yang mengembalikan tampilan dan data, tetapi Asp.Net Web API digunakan untuk membuat layanan HTTP penuh dengan cara mudah dan sederhana yang mengembalikan hanya data yang tidak dilihat.
Web API membantu membangun layanan REST-ful di atas .NET Framework dan juga mendukung negosiasi konten (ini tentang menentukan data format respons terbaik yang dapat diterima oleh klien. Bisa saja JSON, XML, hosting mandiri yang tidak dalam MVC.
Web API juga menangani pengembalian data dalam format tertentu seperti JSON, XML atau lainnya berdasarkan header Terima dalam permintaan dan Anda tidak khawatir tentang itu. MVC hanya mengembalikan data dalam format JSON menggunakan JsonResult.
sumber
Biasanya, WebAPI digunakan untuk layanan data di mana MVC dapat menghasilkan lebih banyak jenis output.
WebAPI pasti menyederhanakan cara kita dapat membuat layanan data. Bersih dan mudah untuk tujuan ini. MVC hadir dengan beberapa alat lainnya.
MVC dapat menghasilkan keluaran apa pun yang dapat dihasilkan WebAPI. Menghasilkan output dari template dapat dengan mudah dicapai di MVC. Saya tidak dapat menemukan alasan untuk melakukannya di WebAPI. Pengembang PHP dan pemrogram ASP lama mungkin mengetahui sikap ini dari masa lalu, di mana Anda dapat membuat file HTML yang terlibat dengan kode C # di dalamnya.
WebAPI- DATA MVC - DATA, UI / HTML, XHTML, File, Templat dll.
sumber