อะไรคือความแตกต่างระหว่าง API App และ Web App?


95

ตอนนี้ฉันได้อ่านบทแนะนำเกี่ยวกับการปรับใช้ Web Apps และ API Apps กับ Azure แล้ว อย่างไรก็ตามฉันยังไม่แน่ใจเล็กน้อยว่าทำไมคุณถึงใช้อันอื่น

ฉันสามารถสร้างโซลูชัน. NET ใหม่ด้วยตัวควบคุม API และปรับใช้เป็น Web App ได้แล้วทำไมฉันจึงต้องการแอป API โดยเฉพาะ สิ่งเหล่านี้ได้รับการปรับให้เหมาะสมโดยเฉพาะสำหรับ ASP.NET Web API โดยที่ Web Apps มีไว้สำหรับส่ง HTML หรือไม่

คำตอบ:


76

การอัปเดตคำตอบสำหรับสถานะปัจจุบันของ Azure

ขณะนี้บริการแอปแทนที่รสชาติมือถือ Api และเว็บแอปทั้งหมดเป็นกรอบงานแอปเดียวพร้อมฟังก์ชันการทำงานทั้งหมดที่ครอบคลุมเพื่อให้สามารถเข้าถึงสิ่งต่างๆได้มากขึ้นในประเภทแอปพลิเคชัน ปัจจุบันแอปเว็บมือถือและ Api ทั้งหมดเรียกรวมกันว่าบริการแอป เรายังคงเสนอให้ลูกค้าสามารถสร้างแอพมือถือและเว็บแอพในแกลเลอรีได้ แต่โดยพื้นฐานแล้วจะแก้ไขเป็น App Service App

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

คุณสมบัติสำหรับการทำงานบนมือถือสำหรับ Web App เช่น Easy Tables และ Easy API และฟีเจอร์สำหรับแอป API เช่น API Cors และคำจำกัดความของ API ก็ทำงานบนเว็บแอปได้เช่นกัน ลูกค้าสามารถโฮสต์เว็บแอปเดียวเพื่อทำหน้าที่เป็นบริการมือถือหรือ API ที่มีคุณสมบัติทั้งหมดที่นำเสนอผ่านบริการแอป

นอกจากนี้เรายังมีบริการใหม่ในการแสดงตัวอย่างโดยเฉพาะการกำหนดเป้าหมายแอป API โดยนำเสนอประสบการณ์การจัดการสำหรับ API ของคุณโดยทั่วไปคุณสามารถควบคุมหน้าสร้างลอง API รวบรวมการวิเคราะห์การดำเนินการเค้นและอื่น ๆ อีกมากมาย ดูบล็อกคุณลักษณะเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับคุณลักษณะการจัดการ Azure API และใช่คุณสามารถโฮสต์ API เป็น App Service App และเชื่อมต่อกับ API Management

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


2
ความรุ่งโรจน์ในการปรับปรุงสิ่งต่างๆให้ทันสมัยอยู่เสมอ! แม้ว่า ... โดยปกติฉันคิดว่าคำตอบใหม่จะเป็นไปตามลำดับเนื่องจากข้อมูลที่อัปเดตเทียบกับคำตอบเดิม จากนั้นอีกครั้งฉันเดาว่านี่เป็นกรณีแปลก ๆ / พื้นที่สีเทาแม้ว่าจะได้รับการโหวต / ยอมรับแล้ว :)
David Makogon

ใช่ฉันคิดว่าการอัปเดตนั้นดีเพราะทำให้เธรดใหม่อยู่เสมอและทำให้แน่ใจว่าผู้คนจะเห็นคำตอบได้ง่าย :)
CB

4
เหตุผลหลักของการมีแอป API และแอปพลิเคชันเว็บภายใต้ร่มของบริการ APP คืออะไรหากไม่มีความแตกต่าง
Hussein Salman

1
ความแตกต่างอีกประการหนึ่ง: หากนักพัฒนาต้องการนำเข้าคำจำกัดความของแอปในการจัดการ api โดยใช้ตัวเลือก Api App จะมีให้เลือกเฉพาะเว็บแอปที่สร้างเป็นแอป Api เท่านั้น
user1075679

60

มีช่วงเวลาหนึ่งที่มีความแตกต่างระหว่างบริการแอปประเภทต่างๆ แต่นั่นไม่เป็นความจริงอีกต่อไป เอกสารในขณะนี้สหรัฐฯ:

ความแตกต่างเพียงอย่างเดียวระหว่างประเภทแอปทั้งสาม (API, เว็บ, อุปกรณ์เคลื่อนที่) คือชื่อและไอคอนที่ใช้สำหรับพวกเขาในพอร์ทัล Azure

ดังนั้นจึงไม่สำคัญว่าคุณจะเลือกใช้บริการแอปประเภทใดอีกต่อไป (เว้นแต่คุณจะสนใจว่าไอคอนจะเป็นอย่างไร)

อัปเดต

ตอนนี้แอพฟังก์ชันเป็นข้อยกเว้น การสร้างแอพฟังก์ชันจะเปลี่ยนส่วนต่อประสานผู้ใช้ในพอร์ทัล อย่างไรก็ตามเว็บแอปที่เป็นพื้นฐานนั้นไม่แตกต่างกัน การตั้งค่าการตั้งค่าแอปชื่อFUNCTIONS_EXTENSION_VERSION= ~1เปลี่ยนเว็บแอปใด ๆ ให้เป็นแอปฟังก์ชัน (ลบด้วยส่วนติดต่อผู้ใช้ในพอร์ทัล)


มีความแตกต่างอีกอย่างหนึ่ง คุณไม่สามารถใช้ snappoints การดีบักบนแอป api ดูความคิดเห็นจาก Nikhil_Joglekar_MSFT เมื่อ 12 ต.ค. 2017 docs.microsoft.com/en-us/visualstudio/debugger/…
Scott Chamberlain

@ChibiChakaravarthi จะแยกความแตกต่างได้อย่างไรว่าแอพเป็นแอพฟังก์ชั่นโดยใช้ rest api ฉันใช้ปลายทาง API นี้: management.azure.com/subscriptions {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Web/sites/ {name}? api-version = 2016-08-01 มีคีย์ชนิดอยู่ใน คำตอบคีย์นั้นน่าเชื่อถือและมีประโยชน์หรือไม่?
rohanagarwal

ไม่น่าเศร้า แอพฟังก์ชั่นเป็นเพียงเว็บแอปอื่น ฉันขอทราบสาเหตุที่คุณต้องการทราบประเภทของแอป
CB

นี่เป็นคำตอบที่ดีกว่าและตรงไปตรงมาสำหรับคำถามที่ฉันรู้สึก
AlvinfromDiaspar

11

มีความแตกต่างเล็กน้อยระหว่าง Web API และ API Apps แต่ความแตกต่างที่สำคัญมากคือ

  1. การใช้งาน Native Swagger - เมื่อคุณสร้างแอป API ใน Visual studio การอ้างอิง swagger จะมาตามค่าเริ่มต้น Swagger นำเสนอคุณสมบัติที่เป็นมิตรกับนักพัฒนาสำหรับผู้บริโภค API เพื่อโต้ตอบกับ API ของคุณผ่าน Swagger UI นอกจากนี้ API ที่ใช้ Swagger ยังให้การสร้าง SDK ของไคลเอ็นต์ (ทั้งไคลเอนต์ที่ใช้. Net และไคลเอนต์ที่ใช้ Javascript) ซึ่งทำให้เรียก API ได้ง่ายเหมือนกับการเรียกใช้เมธอดทั่วไป หมายเหตุ: การใช้งาน Swagger บน Web API ปกติสามารถทำได้ด้วยตนเอง

  2. ความสามารถในการเผยแพร่แอป API ของคุณใน Azure Market Place Azure Market Place เป็นที่เก็บสาธารณะสำหรับแอป API ทั้งหมดที่สามารถใช้งานได้อย่างอิสระหรือโดยคิดค่าบริการ

นี้วิดีโอ 15 นาทีจากช่อง 9 ให้ภาพรวมที่ดีเกี่ยวกับการอภิปพลิเคชัน


2

เพื่อเสริมคำตอบของ Greg นี่คือบทความล่าสุดที่อธิบายถึงความแตกต่าง

สรุป:

"คุณสมบัติหลักของแอพ API - การพิสูจน์ตัวตน CORS และข้อมูลเมตาของ API - ได้ย้ายไปยังบริการแอพโดยตรงด้วยการเปลี่ยนแปลงนี้คุณสมบัตินี้จะพร้อมใช้งานในแอพเว็บมือถือและ API ในความเป็นจริงทั้งสามใช้ Microsoft.Web / ประเภททรัพยากรของไซต์ในตัวจัดการทรัพยากร "

และนี่คือหมายเหตุสำคัญอีกประการหนึ่ง:

"หาก API ของคุณได้รับการปรับใช้เป็นเว็บแอปหรือแอปบนอุปกรณ์เคลื่อนที่แล้วคุณไม่จำเป็นต้องทำให้แอปของคุณใช้งานได้อีกครั้งเพื่อใช้ประโยชน์จากคุณลักษณะใหม่ ๆ "


1

ขึ้นอยู่กับสิ่งที่คุณกำลังพยายามทำ แต่คุณจะใช้ Web API เมื่อคุณสร้างบริการ ASP.Net Web API เป็นเฟรมเวิร์กสำหรับการสร้างบริการ HTTP ที่ไคลเอนต์หลากหลายประเภทสามารถใช้ สิ่งนี้ช่วยให้คุณสร้างได้ไม่เพียง แต่สำหรับเว็บแอปเท่านั้น แต่ยังเปิดให้เชื่อมต่อกับแอป Android, แอป IOS, เว็บแอป, แอป Windows 8, แอป WPF เป็นต้น

ดังนั้นหากคุณต้องการ Web Service แต่ไม่ต้องการ SOAP คุณก็สามารถใช้ Web API ได้


ฉันคิดว่าผู้ใช้บอกว่าแอพ web api นั้นคล้ายกับเว็บแอพมากและในความเป็นจริง VS เราสามารถผสมพวกมันได้อย่างง่ายดายว่าสิ่งที่ทำให้แอพ web api ไม่เหมือนใคร เมื่อเราปรับใช้เว็บ api หรือเว็บแอปกับ IIS ภายในเครื่องจะไม่มีความแตกต่างอะไรเลยแล้วทำไมความแตกต่างใน Azure?
user441521

1

นี่คือความคิดเห็นของฉัน:

แอป API: ใช้สำหรับฟังก์ชันเฉพาะ เรียกใช้ฟังก์ชันนั้นจาก URL สามารถนำไปใช้กับ GET, POST, PUT, DELETE สามารถรับพารามิเตอร์ได้ที่ BODY (Json) การตอบสนองด้วยรหัสสถานะที่ถูกต้อง (ล้มเหลวสำเร็จ)

Web APP: แอปพลิเคชันที่ใช้งานได้หลายฟังก์ชันเช่นแค็ตตาล็อกสำหรับสร้างอัปเดตและลบลูกค้าหรือเพื่อสร้าง ERP ที่สมบูรณ์

แอพฟังก์ชัน: คล้ายกับแอพ API มากใช้สำหรับฟังก์ชันเฉพาะ เรียกใช้ฟังก์ชันนั้นจาก URL สามารถนำไปใช้กับ GET, POST, PUT, DELETE สามารถรับพารามิเตอร์ได้ที่ BODY (Json) การตอบสนองด้วยรหัสสถานะที่ถูกต้อง (ล้มเหลวสำเร็จ)

ตารางเปรียบเทียบ: Web App vs API app เทียบกับ Azure Functions


0

จริงๆแล้วคุณสามารถปรับใช้ aspnet webapi ของคุณบน Azure WebApp และโฮสต์ด้วยตนเองใน Worker Roles

บน WebApp (เว็บไซต์ Azure เดิม) จะถูกปรับใช้บน IIS ดังนั้นคุณสามารถใช้ประโยชน์จากคุณสมบัติ IIS ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.