Bir API Uygulaması ile Web Uygulaması arasındaki fark nedir?


95

Şimdi Web Uygulamalarını ve API Uygulamalarını Azure'a dağıtma konusunda birkaç öğretici okudum. Bununla birlikte, neden birini diğerine tercih edeceğinizden hala biraz emin değilim.

API denetleyicileriyle yeni bir .NET çözümü oluşturabilir ve bunu bir Web Uygulaması olarak dağıtabilirim, öyleyse neden özellikle bir API Uygulamasına ihtiyaç duyayım? Bunlar özellikle ASP.NET Web API'si için optimize edilmiş mi? Web Uygulamaları HTML sunmak için mi?

Yanıtlar:


76

Cevabı mevcut Azure durumuna güncelleme,

Uygulama Hizmetleri artık tüm Mobil, Api ve Web Uygulamaları çeşitlerini tek bir uygulama çerçevesi olarak değiştiriyor ve her şeyi uygulama türleri arasında daha erişilebilir hale getirmek için devredilen tüm işlevler ile değiştiriyor. Şu anda tüm Web, Mobil ve Api Uygulamalarına toplu olarak Uygulama Hizmetleri denir. Müşterilere galeride bir Mobil Uygulama ve Web Uygulaması oluşturabilmesini hâlâ teklif ediyoruz, ancak bu temelde bir Uygulama Hizmeti Uygulamasına dönüşüyor.

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

Mobil için özellikler, Web Uygulaması ile birlikte Kolay Tablolar ve Kolay API gibi çalışır. API Cors ve API tanımları gibi API uygulamalarına yönelik özellikler artık web uygulamalarında da çalışıyor. Bir müşteri, herhangi bir mobil hizmet olarak hareket etmek için tek bir web uygulamasını veya uygulama hizmetleri aracılığıyla sunulan tüm özelliklerle bir API'yi barındırabilir.

Ayrıca, API'leriniz için bir yönetim deneyimi sunarak özellikle API Uygulamalarını hedefleyen önizleme alanında yeni bir hizmetimiz var, Temel olarak deneme API sayfalarını, yürütme analizlerini, kısma ve çok daha fazlasını toplamayı kontrol edebilirsiniz. Azure API Yönetim Özellikleri hakkında daha fazla bilgi edinmek için özellik bloguna göz atın. Ve evet, API'leri bir Uygulama Hizmeti Uygulaması olarak barındırabilir ve API Yönetimi ile işleri birleştirebilirsiniz.

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


2
İşleri güncel tutmak için tebrikler! Yine de ... Normalde, orijinal cevaba karşı ne kadar bilginin güncellendiği göz önüne alındığında, yeni bir cevap olacağını düşünürdüm. Sonra yine, sanırım bu garip bir durum / gri alan, çünkü zaten oy verildi / kabul edildi. :)
David Makogon

Evet, yazışmayı taze tuttuğu ve insanların yanıtı kolayca görmesini sağladığı için güncellemenin iyi olduğunu düşünüyorum :)
CB

4
Öyleyse API APP'leri ve Web Uygulamalarını, fark yoksa, APP Services çatısı altında bulundurmanın ana nedeni nedir
Hüseyin Salman

1
Diğer bir fark: bir geliştirici, Api Uygulaması seçeneğini kullanarak api yönetiminde bir uygulama tanımını içe aktarmak isterse, yalnızca Api Uygulamaları olarak oluşturulan web uygulamaları seçilebilir
user1075679

60

Farklı uygulama hizmeti türleri arasında farklılıkların olduğu bir zaman vardı, ancak bu artık doğru değil. Dokümantasyon şimdi devletler:

Üç uygulama türü (API, web, mobil) arasındaki tek fark, Azure portalında onlar için kullanılan ad ve simgedir.

Bu nedenle, hangi uygulama hizmet türünü dağıtmayı seçtiğiniz artık önemli değil (simgenin neye benzediğini önemsemediğiniz sürece).

GÜNCELLEME

İşlev uygulamaları artık istisnadır. Bir işlev uygulaması oluşturmak, portaldaki kullanıcı arayüzünü değiştirir. Ancak, temeldeki web uygulaması farklı değildir. FUNCTIONS_EXTENSION_VERSION= Adlı bir uygulama ayarının ayarlanması ~1, herhangi bir web uygulamasını bir işlev uygulamasına dönüştürür (portaldaki kullanıcı arayüzü hariç).


Başka bir fark var. API uygulamalarında hata ayıklama anlık noktalarını kullanamazsınız. 12 Ekim 2017 tarihinde Nikhil_Joglekar_MSFT'den
Scott Chamberlain

@ChibiChakaravarthi Bir uygulamanın rest api kullanan bir işlev uygulaması olup olmadığı nasıl ayırt edilir? Şu API uç noktasını kullanıyorum: management.azure.com/subscriptions {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Web/sites/ {name}? Api-version = 2016-08-01 Tür anahtarı var yanıt, bu anahtar güvenilir ve kullanışlı mı?
rohanagarwal

Üzgünüm hayır. işlev uygulaması sadece başka bir web uygulamasıdır. Uygulamanın türünü neden öğrenmek istediğinizi öğrenebilir miyim?
CB

Bunun soruya daha iyi ve doğrudan bir cevap olduğunu hissediyorum.
AlvinfromDiaspar

11

Web API ve API Uygulamaları arasında pek çok küçük fark vardır, ancak çok önemli ve temel farklar şunlardır:

  1. Yerel Swagger uygulaması - Visual Studio'da API Uygulaması oluşturduğunuzda, swagger referansı varsayılan olarak gelir. Swagger, API tüketicilerinin Swagger UI aracılığıyla API'nizle etkileşim kurması için çok geliştirici dostu özellikler sağlar. Ayrıca Swagger tabanlı API'ler, tıpkı normal yöntem çağrısı gibi API'leri çağırmayı kolaylaştıran istemci SDK üretimi (hem .Net tabanlı istemci hem de Javascript tabanlı istemci) sağlar. Not: Normal Web API'sinde Swagger uygulaması manuel olarak mümkündür.

  2. API Uygulamalarınızı Azure Market Place'te yayınlama yeteneği. Azure Market Place, ücretsiz olarak veya ücret karşılığında kullanılabilen tüm API Uygulamaları için herkese açık bir depodur.

Kanal 9'dan alınan bu 15 dakikalık video, Api Uygulamaları hakkında mükemmel bir genel bakış sağlar.


2

Greg'in cevabını tamamlamak için, İşte farklılıkları açıklayan daha yeni bir makale.

Sonuç olarak:

"API Uygulamalarının temel özellikleri - kimlik doğrulama, CORS ve API meta verileri - doğrudan Uygulama Hizmetine taşındı. Bu değişiklikle, özellikler Web, Mobil ve API Uygulamalarında kullanılabilir. Aslında, üçü de aynı Microsoft.Web / Resource Manager'daki site kaynak türü. "

Ve işte başka bir önemli not:

"API'niz zaten bir Web Uygulaması veya Mobil Uygulama olarak dağıtılmışsa, yeni özelliklerden yararlanmak için uygulamanızı yeniden dağıtmanıza gerek yoktur."


1

Bu, ne yapmaya çalıştığınıza bağlı olabilir, ancak bir hizmet oluştururken bir Web API kullanırsınız. ASP.Net Web API, çok çeşitli istemciler tarafından kullanılabilen HTTP hizmetleri oluşturmak için bir çerçevedir. Bu, onu yalnızca bir web uygulaması için oluşturmanıza değil, aynı zamanda Android uygulamalarına, IOS uygulamalarına, web uygulamalarına, Windows 8 uygulamalarına, WPF uygulamalarına vb. Bağlanmak için açmanızı sağlar.

Dolayısıyla, bir Web Hizmetine ihtiyacınız varsa, ancak SABUN'a ihtiyacınız yoksa, Web API'yi kullanabilirsiniz.


Kullanıcı bir web api uygulamasının bir web uygulamasına çok benzediğini ve aslında VS'de bir web api uygulamasını benzersiz kılan şeyleri kolayca karıştırabileceğimizi söylediğini düşünüyorum. Yerel olarak IIS'ye bir web api veya web uygulaması dağıttığımızda hiçbir şeyde fark yoktur, öyleyse neden Azure'da bir fark var?
user441521

1

İşte yorumlarım:

API uygulaması: Belirli işlevsellik için kullanılır. Bu işlevselliği bir URL'den tetiklemek. GET, POST, PUT, DELETE ile kullanmak için kullanılabilir. BODY'de (Json) parametreleri alabilir. Geçerli durum koduyla yanıt (başarısız, başarı.)

Web APP: Müşterileri oluşturmak, güncellemek ve silmek veya eksiksiz bir ERP oluşturmak için bir katalog gibi birden çok işlevselliğe sahip bir uygulama

İşlev APP: API uygulamasına çok benzer, belirli işlevsellik için kullanılır. Bu işlevselliği bir URL'den tetiklemek. GET, POST, PUT, DELETE ile kullanmak için kullanılabilir. BODY'de (Json) parametreleri alabilir. Geçerli durum koduyla yanıt (başarısız, başarı.)

Karşılaştırma tablosu: Web Uygulaması, API uygulaması ve Azure İşlevleri.


0

Aslında aspnet webapinizi Azure WebApp üzerinde ve bir kendi kendine barındırma İşçi Rollerinde dağıtabilirsiniz.

WebApp'ta (eski Azure web siteleri), IIS'de dağıtılacak, böylece IIS özelliklerinden yararlanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.