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


Câu trả lời:


86

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.


1
cảm ơn @Slawek, bạn đã giải thích nó tốt hơn..và cảm ơn vì ví dụ này ...
Harish Kurup

2
Trong thực tế, tôi nghe mọi người gọi cả SOAP và REST là "dịch vụ web". API Web có xu hướng là REST mặc dù.
Ben Thurley

@Slawek, cách bạn nói nó 2000 trang so với vài trang, chính nó giải thích sự phức tạp giảm đi. Cách tốt để nói một cách đơn giản ..
Jaqen H'ghar

20

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 các quy ước REST (Tóm tắt bài viết Wikipedia ). Các khái niệm chắc chắn chồng chéo. Tôi tin rằng vẫn còn một liên kết trong suy nghĩ 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 phân biệt hoặc sử dụng các thuật ngữ thay thế cho nhau.


Cảm ơn bạn @Berin Loritsch, vâng đúng vậy, nó gây ra sự nhầm lẫn giữa API và WS ..
Harish Kurup

6

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

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 dành cho BMW N53 .

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.