Sự khác biệt giữa Ứng dụng API và Ứng dụng web là gì?


95

Hiện tôi đang đọc một số hướng dẫn về cách triển khai Ứng dụng web và Ứng dụng API cho Azure. Tuy nhiên, tôi vẫn hơi không chắc về lý do tại sao bạn lại sử dụng cái này thay cho cái khác.

Tôi có thể tạo giải pháp .NET mới với bộ điều khiển API và triển khai nó dưới dạng Ứng dụng web, vậy tại sao tôi lại yêu cầu cụ thể một Ứng dụng API? Các ứng dụng này có được tối ưu hóa đặc biệt cho ASP.NET Web API, nơi mà các Ứng dụng web dùng để phân phối HTML không?

Câu trả lời:


75

Đang cập nhật câu trả lời cho trạng thái hiện tại của Azure,

Dịch vụ ứng dụng hiện thay thế tất cả các phiên bản Ứng dụng dành cho thiết bị di động, Api và Ứng dụng web thành một khung ứng dụng duy nhất với tất cả các chức năng được tổng hợp để giúp mọi thứ dễ tiếp cận hơn trên các loại ứng dụng. Hiện tại, tất cả Ứng dụng Web, Di động và Api được gọi chung là Dịch vụ Ứng dụng. Chúng tôi vẫn cung cấp cho khách hàng khả năng tạo Ứng dụng dành cho thiết bị di động và Ứng dụng web trong thư viện nhưng điều đó về cơ bản được giải quyết thành Ứng dụng dịch vụ ứng dụng.

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

Các tính năng dành cho công việc Di động cho Ứng dụng web cũng như Bảng dễ dàng và API dễ dàng. Và các tính năng dành cho ứng dụng API như API Cors và định nghĩa API hiện cũng hoạt động trên các ứng dụng web. Khách hàng có thể lưu trữ một ứng dụng web duy nhất để hoạt động như bất kỳ dịch vụ di động nào hoặc một api với tất cả các tính năng được cung cấp thông qua các dịch vụ ứng dụng.

Chúng tôi cũng có một dịch vụ mới trong bản xem trước, đặc biệt nhắm mục tiêu các Ứng dụng API bằng cách cung cấp trải nghiệm quản lý cho các API của bạn, Về cơ bản, bạn có thể kiểm soát việc tạo các trang API thử, thu thập phân tích thực thi, điều tiết và hơn thế nữa. Xem blog tính năng để tìm hiểu thêm về các Tính năng quản lý API Azure. Và có, bạn có thể lưu trữ các API dưới dạng Ứng dụng Dịch vụ Ứng dụng và kết nối mọi thứ với Quản lý API.

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


2
Kudos để luôn cập nhật mọi thứ! Mặc dù ... Thông thường tôi nghĩ một câu trả lời mới sẽ theo thứ tự, với số lượng thông tin đã được cập nhật so với câu trả lời ban đầu. Sau đó, một lần nữa, tôi đoán đây là một trường hợp / vùng xám kỳ lạ, vì nó đã được ủng hộ / chấp nhận. :)
David Makogon

Có, tôi nghĩ cập nhật là tốt vì nó giữ cho chủ đề luôn mới và đảm bảo mọi người dễ dàng xem câu trả lời :).
Chibi Chakaravarthi

4
Vậy lý do chính của việc có các Ứng dụng API và Ứng dụng web dưới sự bảo trợ của Dịch vụ APP nếu không có sự khác biệt
Hussein Salman

1
Khác biệt nữa: nếu một nhà phát triển muốn nhập khẩu một định nghĩa ứng dụng trong quản lý api sử dụng tùy chọn Api App, chỉ Web Apps được tạo ra như Api Apps sẽ có sẵn để lựa chọn
user1075679

59

Đã có lúc có sự khác biệt giữa các loại dịch vụ ứng dụng khác nhau, nhưng điều đó không còn đúng nữa. Các tài liệu hướng dẫn tại các tiểu bang:

Sự khác biệt duy nhất giữa ba loại ứng dụng (API, web, di động) là tên và biểu tượng được sử dụng cho chúng trong cổng Azure.

Vì vậy, không còn quan trọng loại dịch vụ ứng dụng bạn chọn để triển khai (trừ khi bạn quan tâm đến biểu tượng trông như thế nào).

CẬP NHẬT

Các ứng dụng chức năng bây giờ là ngoại lệ. Tạo một ứng dụng chức năng sẽ thay đổi giao diện người dùng trong cổng thông tin. Tuy nhiên, ứng dụng web cơ bản cũng không khác. Đặt cài đặt ứng dụng có tên FUNCTIONS_EXTENSION_VERSION= ~1biến bất kỳ ứng dụng web nào thành ứng dụng chức năng (trừ giao diện người dùng trong cổng thông tin).


Có một sự khác biệt. Bạn không thể sử dụng gỡ lỗi snappoints trên ứng dụng api. Xem nhận xét từ Nikhil_Joglekar_MSFT vào ngày 12 tháng 10 năm 2017 docs.microsoft.com/en-us/visualstudio/debugger/…
Scott Chamberlain

@CulationChakaravarthi Làm cách nào để phân biệt một ứng dụng có phải là ứng dụng chức năng sử dụng api nghỉ không? Tôi đang sử dụng điểm cuối API này: management.azure.com/subscriptions {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Web/sites/ {name}? Api-version = 2016-08-01 Có chìa khóa hữu ích trong câu trả lời, khóa đó có đáng tin cậy và hữu ích không?
rohanagarwal

Thật đáng buồn không. ứng dụng chức năng chỉ là một ứng dụng web khác. Tôi có thể biết tại sao bạn muốn biết loại ứng dụng không?
Chibi Chakaravarthi

11

Có nhiều khác biệt nhỏ giữa API Web và Ứng dụng API, nhưng sự khác biệt rất đáng chú ý và chính là

  1. Triển khai Native Swagger - Khi bạn tạo Ứng dụng API trong Visual studio, tham chiếu swagger xuất hiện theo mặc định. Swagger cung cấp các tính năng rất thân thiện với nhà phát triển để người tiêu dùng API Tương tác với API của bạn thông qua giao diện người dùng Swagger. Ngoài ra, API dựa trên Swagger cung cấp tính năng tạo SDK ứng dụng khách (cả ứng dụng khách dựa trên .Net và ứng dụng khách dựa trên Javascript) giúp dễ dàng gọi API giống như gọi phương thức thông thường. Lưu ý: Có thể triển khai Swagger trên Web API thông thường theo cách thủ công.

  2. Khả năng xuất bản các Ứng dụng API của bạn vào Azure Market Place. Azure Market Place là kho lưu trữ công khai cho tất cả các Ứng dụng API có thể được sử dụng miễn phí hoặc tính phí.

này 15 phút video từ Kênh 9 đưa ra một cái nhìn tổng quan tuyệt vời về Api Apps.


2

Để bổ sung câu trả lời của Greg, Đây là một bài báo thậm chí còn gần đây hơn mô tả sự khác biệt.

Tóm lại:

"Các tính năng chính của Ứng dụng API - xác thực, CORS và siêu dữ liệu API - đã chuyển thẳng vào Dịch vụ ứng dụng. Với thay đổi này, các tính năng có sẵn trên các Ứng dụng web, Di động và API. Trên thực tế, cả ba đều dùng chung một Microsoft.Web / loại tài nguyên trang web trong Trình quản lý tài nguyên. "

Và đây là một lưu ý quan trọng khác:

"Nếu API của bạn đã được triển khai dưới dạng Ứng dụng web hoặc Ứng dụng di động, bạn không cần phải triển khai lại ứng dụng của mình để tận dụng các tính năng mới."


1

Điều này có thể phụ thuộc vào những gì bạn đang cố gắng thực hiện, nhưng bạn sẽ sử dụng API Web khi tạo dịch vụ. ASP.Net Web API là một khuôn khổ để xây dựng các dịch vụ HTTP có thể được sử dụng bởi nhiều loại máy khách. Điều này cho phép bạn xây dựng nó không chỉ cho một ứng dụng web mà còn mở nó để kết nối với các ứng dụng Android, ứng dụng IOS, ứng dụng web, ứng dụng Windows 8, ứng dụng WPF, v.v.

Vì vậy, nếu bạn cần một Dịch vụ Web nhưng bạn không cần SOAP thì bạn có thể sử dụng API Web.


Tôi nghĩ rằng người dùng đang nói rằng một ứng dụng api web rất giống với một ứng dụng web và trên thực tế, trong VS, chúng tôi có thể kết hợp chúng một cách dễ dàng để tạo nên một ứng dụng api web độc đáo. Khi chúng tôi triển khai một api web hoặc ứng dụng web cho IIS cục bộ, không có sự khác biệt nào đối với bất kỳ điều gì, vậy tại sao lại có sự khác biệt trong Azure?
user441521 22/02

1

Đây là ý kiến ​​của tôi:

Ứng dụng API: Được sử dụng cho các chức năng cụ thể. Kích hoạt chức năng đó từ một URL. Có thể được sử dụng để sử dụng với GET, POST, PUT, DELETE. Có thể nhận thông số tại BODY (Json). Phản hồi với mã trạng thái hợp lệ (thất bại, thành công.)

Web APP: Một ứng dụng được triển khai với nhiều chức năng, ví dụ như một danh mục để tạo, cập nhật và xóa khách hàng hoặc để tạo một ERP hoàn chỉnh.

Chức năng APP: Rất giống với ứng dụng API, Được sử dụng cho các chức năng cụ thể. Kích hoạt chức năng đó từ một URL. Có thể được sử dụng để sử dụng với GET, POST, PUT, DELETE. Có thể nhận thông số tại BODY (Json). Phản hồi với mã trạng thái hợp lệ (thất bại, thành công.)

Bảng phân tách: Ứng dụng web so với ứng dụng API và Chức năng Azure.


0

Trên thực tế, bạn có thể triển khai aspnet webapi của mình trên Azure WebApp và một máy chủ tự lưu trữ trên Worker Roles.

Trên WebApp (các trang web Azure trước đây), nó sẽ được triển khai trên IIS, vì vậy bạn có thể tận dụng các tính năng của IIS.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.