20

REST vs SOAP - Một vài góc nhìn

REST so với SOAP

Trong bài viết này, chúng tôi xem xét sự khác biệt chính giữa SOAP và REST. Rất tiếc ... thực ra, so sánh cả hai giống như so sánh táo với cam, vì SOAP là một định dạng giao thức dựa trên XML, trong khi REST là một cách tiếp cận kiến ​​trúc.

Bạn sẽ học

  • REST là gì?
  • SOAP là gì?
  • REST và SOAP khác nhau như thế nào?
Bạn cũng có thể quan tâm:  Hướng dẫn cho người mới bắt đầu kiểm tra các API và dịch vụ web RESTful

API REST

Đây là bài viết thứ hai trong loạt bài viết về API REST. Bài đầu tiên có tên là "Giới thiệu về REST API - RESTful Web Services."

REST so với SOAP

REST và SOAP không thực sự so sánh được. REST là một phong cách kiến ​​trúc. SOAP là một định dạng trao đổi tin nhắn.

Hãy so sánh các cách triển khai phổ biến của kiểu REST và SOAP.

  • Triển khai mẫu RESTful: JSON qua HTTP
  • Triển khai mẫu SOAP: XML qua SOAP qua HTTP

Ở cấp độ cao, SOAP là về các hạn chế đối với cấu trúc thông điệp của bạn, trong khi REST là một cách tiếp cận kiến ​​trúc tập trung vào việc sử dụng HTTP Transport.

  • SOAP nói riêng về Định dạng Trao đổi Dữ liệu . Với SOAP, đây luôn là SOAP-XML, là một XML có phong bì, tiêu đề và nội dung. Cả yêu cầu và phản hồi phải tuân theo cấu trúc SOAP.
  • REST rất đặc biệt về việc sử dụng HTTP làm giao thức truyền tải. Nó dự định sử dụng tốt nhất các tính năng được cung cấp bởi HTTP - Phương thức yêu cầu, Tiêu đề yêu cầu, Phản hồi, Tiêu đề phản hồi, v.v.

Định dạng trao đổi tin nhắn

  • Với SOAP, bạn sử dụng định dạng SOAP XML cho Yêu cầu và Phản hồi
  • Với REST, không có định dạng cố định như vậy. Bạn có thể trao đổi tin nhắn dựa trên XML, JSON hoặc bất kỳ định dạng thuận tiện nào khác. JSON là phổ biến nhất trong số các định dạng được sử dụng.

Định nghĩa dịch vụ

  • SOAP sử dụng Ngôn ngữ Định nghĩa Dịch vụ Web (WSDL) .
  • REST không có ngôn ngữ định nghĩa dịch vụ tiêu chuẩn. Mặc dù WADL là một trong những tiêu chuẩn đầu tiên được đề xuất, nhưng nó không phổ biến lắm. Swagger hoặc Open API là một cách tiếp cận phổ biến khác.

Vận chuyển

  • SOAP không đặt ra bất kỳ hạn chế nào đối với loại giao thức truyền tải. Bạn có thể sử dụng Web (là HTTP) hoặc MQ.
  • REST dự định sử dụng tốt nhất Giao thức truyền tải HTTP

Dễ thực hiện

Các dịch vụ RESTFful thường dễ triển khai hơn nhiều so với các dịch vụ web dựa trên SOAP.

  • REST thường sử dụng JSON, dễ dàng hơn để phân tích cú pháp và xử lý. Ngoài ra, REST không yêu cầu bạn phải có định nghĩa dịch vụ để cung cấp dịch vụ web.
  • Tuy nhiên, với SOAP, bạn cần phải xác định dịch vụ của mình bằng WSDL và chi phí lớn hơn liên quan đến việc xử lý và phân tích cú pháp các thông báo SOAP-XML.

Kiểm tra video của chúng tôi về điều này:


Tóm lược

Trong bài viết này, chúng tôi đã xem xét một cách rộng rãi sự khác biệt giữa REST và SOAP.

Đọc thêm

5 khóa học để tìm hiểu các dịch vụ web hiệu quả với Java và Spring vào năm 2019

10 Mẹo kiểm tra API cho người mới bắt đầu (SOAP và REST)

|