it-swarm-vi.com

Sự khác biệt giữa API Web và Dịch vụ web?

Tôi đã nghe nhiều về Dịch vụ web và API Web, có sự khác biệt nào giữa chúng hay chúng giống nhau không?

86
Harish Kurup

Dịch vụ web - đó là tiêu chuẩn được xác định bởi W3C, vì vậy chúng có thể được truy cập bán tự động hoặc tự động (WSDL/UDDI). Toàn bộ điều này dựa trên XML, vì vậy bất cứ ai cũng có thể gọi nó. Và mọi khía cạnh của dịch vụ được xác định rất rõ. Có tiêu chuẩn mô tả tham số, tiêu chuẩn truyền tham số, tiêu chuẩn phản hồi, tiêu chuẩn khám phá, v.v. Bạn có thể viết cuốn sách 2000 trang mô tả tiêu chuẩn. Thậm chí còn có một số tiêu chuẩn "bổ sung" để thực hiện những điều "tiêu chuẩn", như xác thực.

Mặc dù thực tế là việc gọi và khám phá tự động hầu như không hoạt động vì khách hàng khá kém và bạn không có gì đảm bảo thực sự rằng bất kỳ dịch vụ nào cũng có thể được gọi từ bất kỳ khách hàng nào.

API Web thường được thực hiện dưới dạng HTTP/REST, không có gì được xác định, đầu ra có thể là ví dụ. JSON/XML, đầu vào có thể là XML/JSON/hoặc dữ liệu đơn giản. Không có tiêu chuẩn cho bất cứ điều gì => không có cuộc gọi và khám phá tự động. Bạn có thể cung cấp một số mô tả trong tệp văn bản hoặc PDF, bạn có thể trả lại dữ liệu trong Windows-1250 thay vì unicode, v.v. Để mô tả tiêu chuẩn, đó là tài liệu 2 trang với một số thông tin đơn giản và bạn sẽ xác định mọi thứ khác.

Web đang chuyển sang API Web/REST. Dịch vụ web thực sự không tốt hơn API Web. Rất phức tạp để phát triển và chúng ăn nhiều tài nguyên hơn (băng thông và RAM) ... và vì tất cả các chuyển đổi dữ liệu (REQUEST-> XML-> DATA-> RESPONSE-> XML-> VALIDATION-> CONVERSION-> DATA) chậm.

Ví dụ. Trong WebAPI, bạn có thể đóng gói dữ liệu, gửi dữ liệu được nén và giải nén + hủy gói trên máy khách. Trong SOAP bạn chỉ có thể nén yêu cầu HTML.

89
Slawek

Một dịch vụ web cho phép máy liên lạc với máy qua HTTP. API web là tập hợp con của các dịch vụ web sử dụng REST (Tóm tắt bài viết Wikipedia ). Các khái niệm chắc chắn trùng lặp. Tôi tin rằng vẫn còn một liên kết trong tâm trí của hầu hết mọi người về dịch vụ web -> SOAP/XML-RPC có thể gây nhầm lẫn một cách không cần thiết.

Cuối cùng, bạn sẽ phải hỏi một vài câu hỏi để làm rõ ý nghĩa của mọi người. Không phải ai cũng tạo ra sự khác biệt hoặc sử dụng các thuật ngữ thay thế cho nhau.

20
Berin Loritsch

Các dịch vụ web là một kiến ​​trúc được xác định và cách tiếp cận đối với một miền có vấn đề như được nêu bởi W3C .

Các dịch vụ web cung cấp một phương tiện tiêu chuẩn để tương tác giữa các ứng dụng phần mềm khác nhau, chạy trên nhiều nền tảng và/hoặc khung khác nhau

API Web là một khái niệm và tóm tắt các phương tiện về cách triển khai khái niệm này.

Theo thuật ngữ của cư sĩ ... API web là dành cho động cơ trong khi WS là BMW N5 .

6
Aaron McIver