Apa perbedaan antara Aplikasi API dan Aplikasi Web?

94

Saya telah membaca beberapa tutorial sekarang tentang menerapkan Aplikasi Web dan Aplikasi API ke Azure. Namun, saya masih sedikit tidak yakin mengapa Anda akan menggunakan satu sama lain.

Saya dapat membuat solusi .NET baru dengan pengontrol API dan menerapkannya sebagai Aplikasi Web, jadi mengapa saya secara khusus memerlukan Aplikasi API? Apakah ini dioptimalkan secara khusus untuk ASP.NET Web API, sedangkan Aplikasi Web untuk mengirimkan HTML?

envio
sumber

Jawaban:

76

Memperbarui jawaban ke status Azure saat ini,

Layanan Aplikasi sekarang menggantikan semua jenis Aplikasi Seluler, Api, dan Aplikasi Web sebagai kerangka aplikasi tunggal dengan semua fungsi yang dialihkan untuk membuat berbagai hal lebih dapat diakses di seluruh jenis aplikasi. Saat ini semua Aplikasi Web, Seluler, dan Api secara kolektif disebut Layanan Aplikasi. Kami masih menawarkan pelanggan untuk dapat membuat Aplikasi Seluler dan Aplikasi Web di galeri, tetapi itu pada dasarnya diselesaikan menjadi Aplikasi Layanan Aplikasi.

https://azure.microsoft.com/en-us/documentation/articles/app-service-api-apps-why-best-platform/

Fitur untuk pekerjaan Seluler untuk Aplikasi Web serta Tabel Mudah dan API Mudah. Dan fitur untuk aplikasi API seperti API Cors dan definisi API sekarang berfungsi di aplikasi web juga. Pelanggan dapat menghosting satu aplikasi web untuk bertindak sebagai layanan seluler atau api dengan semua fitur yang ditawarkan melalui layanan aplikasi.

Kami juga memiliki layanan baru dalam pratinjau terutama yang menargetkan Aplikasi API dengan menawarkan pengalaman manajemen untuk API Anda, Pada dasarnya Anda dapat mengontrol pembuatan halaman API percobaan, mengumpulkan analitik eksekusi, throttle, dan banyak lagi. Lihat blog fitur untuk mempelajari selengkapnya tentang Fitur Manajemen API Azure. Dan ya, Anda dapat menghosting API sebagai App Service App dan menghubungkan semuanya dengan Manajemen API.

https://azure.microsoft.com/en-us/documentation/articles/api-management-get-started/

Chibi Chakaravarthi
sumber
2
Kudos karena selalu memperbarui! Meskipun ... Biasanya saya akan berpikir jawaban baru akan berurutan, mengingat berapa banyak info yang telah diperbarui vs jawaban asli. Kemudian lagi, saya kira yang ini kasus aneh / area abu-abu, karena sudah dipilih / diterima. :)
David Makogon
Ya, saya pikir memperbarui itu bagus karena membuat utas tetap segar dan memastikan orang melihat jawabannya dengan mudah :).
Chibi Chakaravarthi
4
Jadi apa alasan utama memiliki Aplikasi API dan Aplikasi Web di bawah payung Layanan APP jika tidak ada perbedaan
Hussein Salman
1
Perbedaan lain: jika pengembang ingin mengimpor definisi aplikasi dalam manajemen api menggunakan opsi Aplikasi Api, hanya aplikasi web yang dibuat sebagai Aplikasi Api yang akan tersedia untuk dipilih
pengguna1075679
59

Ada suatu masa ketika ada perbedaan antara berbagai jenis layanan aplikasi, tetapi itu tidak berlaku lagi. The dokumentasi sekarang menyatakan:

Satu-satunya perbedaan antara tiga jenis aplikasi (API, web, seluler) adalah nama dan ikon yang digunakan untuk mereka di portal Azure.

Jadi tidak masalah lagi jenis layanan aplikasi mana yang Anda pilih untuk diterapkan (kecuali jika Anda peduli dengan tampilan ikonnya).

MEMPERBARUI

Aplikasi fungsi sekarang menjadi pengecualian. Membuat aplikasi fungsi mengubah antarmuka pengguna di portal. Aplikasi web yang mendasarinya, bagaimanapun, tidak berbeda. Menyetel pengaturan aplikasi bernama FUNCTIONS_EXTENSION_VERSION= ~1mengubah aplikasi web apa pun menjadi aplikasi fungsi (tanpa antarmuka pengguna di portal).

gregjhogan.dll
sumber
Ada perbedaan lainnya. Anda tidak dapat menggunakan snappoints debugging pada aplikasi api. Lihat komentar dari Nikhil_Joglekar_MSFT pada 12 Okt 2017 docs.microsoft.com/en-us/visualstudio/debugger/…
Scott Chamberlain
@ChibiChakaravarthi Bagaimana cara membedakan apakah suatu aplikasi adalah aplikasi fungsi menggunakan rest api? Saya menggunakan titik akhir API ini: management.azure.com/subscriptions {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Web/sites/ {name}? Api-version = 2016-08-01 Ada kunci jenis di tanggapannya, apakah kunci itu dapat diandalkan dan berguna?
rohanagarwal
Sayangnya tidak. aplikasi fungsi hanyalah aplikasi web lain. Bolehkah saya tahu mengapa Anda ingin mengetahui jenis aplikasinya?
Chibi Chakaravarthi
11

Ada banyak perbedaan kecil antara API Web dan Aplikasi API, tetapi yang paling mencolok dan perbedaan utamanya adalah

  1. Implementasi Native Swagger - Saat Anda membuat Aplikasi API di Visual studio, referensi swagger datang secara default. Swagger menyediakan fitur yang sangat ramah pengembang bagi konsumen API untuk Berinteraksi dengan API Anda melalui UI Swagger. Juga API berbasis Swagger menyediakan generasi SDK klien (baik klien berbasis Net dan klien berbasis Javascript) yang memudahkan untuk memanggil API seperti panggilan metode biasa. Catatan: Penerapan Swagger pada Web API biasa dimungkinkan secara manual.

  2. Kemampuan untuk mempublikasikan Aplikasi API Anda ke Azure Market Place. Azure Market Place adalah tempat penyimpanan publik untuk semua Aplikasi API yang dapat digunakan secara bebas atau dengan biaya.

ini 15 menit video dari Channel 9 memberikan gambaran yang sangat baik tentang Api Apps.

Venkatesh Muniyandi
sumber
2

Untuk melengkapi jawaban Greg, Berikut artikel yang lebih baru yang menjelaskan perbedaannya.

Untuk menyimpulkan:

"Fitur utama Aplikasi API - otentikasi, CORS, dan metadata API - telah dipindahkan langsung ke App Service. Dengan perubahan ini, fitur-fitur tersebut tersedia di seluruh Aplikasi Web, Seluler, dan API. Faktanya, ketiganya berbagi Microsoft.Web / jenis sumber daya situs di Resource Manager. "

Dan inilah catatan penting lainnya:

"Jika API Anda sudah diterapkan sebagai Aplikasi Web atau Aplikasi Seluler, Anda tidak perlu menerapkan ulang aplikasi Anda untuk memanfaatkan fitur-fitur baru."

Rudy Scoggins
sumber
1

Ini dapat bergantung pada apa yang Anda coba lakukan, tetapi Anda akan menggunakan API Web saat membuat layanan. ASP.Net Web API adalah kerangka kerja untuk membangun layanan HTTP yang dapat digunakan oleh berbagai klien. Ini memungkinkan Anda untuk membuatnya tidak hanya untuk aplikasi web, tetapi juga membuatnya terbuka untuk terhubung ke aplikasi Android, aplikasi IOS, aplikasi web, aplikasi Windows 8, aplikasi WPF, dll.

Jadi jika Anda membutuhkan Layanan Web tetapi Anda tidak membutuhkan SOAP maka Anda dapat menggunakan API Web.

Daniel Egan
sumber
Saya pikir pengguna mengatakan bahwa aplikasi api web sangat mirip dengan aplikasi web dan sebenarnya di VS kita dapat mencampurnya dengan mudah yang membuat aplikasi api web unik. Saat kami menerapkan api web atau aplikasi web ke IIS secara lokal, tidak ada perbedaan apa pun, jadi mengapa ada perbedaan di Azure?
pengguna441521
1

Berikut komentar saya:

Aplikasi API: Digunakan untuk fungsionalitas tertentu. Memicu fungsionalitas itu dari URL. Dapat digunakan untuk digunakan dengan GET, POST, PUT, DELETE. Dapat menerima parameter di BODY (Json). Tanggapan dengan kode status yang valid (gagal, berhasil.)

APLIKASI Web: Aplikasi yang digunakan dengan berbagai fungsi, misalnya katalog untuk membuat, memperbarui dan menghapus pelanggan atau untuk membuat ERP lengkap.

Fungsi APP: Sangat mirip dengan aplikasi API, Digunakan untuk fungsi tertentu. Memicu fungsionalitas itu dari URL. Dapat digunakan untuk digunakan dengan GET, POST, PUT, DELETE. Dapat menerima parameter di BODY (Json). Tanggapan dengan kode status yang valid (gagal, berhasil.)

Tabel perbandingan: Aplikasi Web vs aplikasi API vs Fungsi Azure.

Israel Calderon
sumber
0

Sebenarnya, Anda dapat menerapkan webapi aspnet Anda di Azure WebApp dan host mandiri di Peran Pekerja.

Di WebApp (sebelumnya situs web Azure), ini akan diterapkan di IIS, sehingga Anda dapat memanfaatkan fitur IIS.

Thiago Custodio
sumber