Ai đó có thể giải thích REST là gì và SOAP trong tiếng Anh đơn giản không? Và dịch vụ web hoạt động như thế nào?
Ai đó có thể giải thích REST là gì và SOAP trong tiếng Anh đơn giản không? Và dịch vụ web hoạt động như thế nào?
Câu trả lời:
SOAP - "Giao thức truy cập đối tượng đơn giản"
SOAP là một phương thức chuyển tin nhắn hoặc một lượng nhỏ thông tin qua Internet. Các thông báo SOAP được định dạng bằng XML và thường được gửi bằng HTTP (giao thức truyền siêu văn bản).
Nghỉ ngơi - Chuyển giao nhà nước đại diện
Nghỉ ngơi là một cách đơn giản để gửi và nhận dữ liệu giữa máy khách và máy chủ và nó không có nhiều tiêu chuẩn được xác định. Bạn có thể gửi và nhận dữ liệu dưới dạng JSON, XML hoặc thậm chí là văn bản thuần túy. Đó là trọng lượng nhẹ so với SOAP.
Cả hai phương pháp được sử dụng bởi nhiều người chơi lớn. Đó là một vấn đề ưu tiên. Sở thích của tôi là REST vì nó đơn giản hơn để sử dụng và hiểu.
Giao thức truy cập đối tượng đơn giản (SOAP):
Chuyển trạng thái đại diện (REST):
Có những cuộc tranh luận bất tận về REST vs SOAP trên google .
Yêu thích của tôi là cái này . Cập nhật ngày 27 tháng 11 năm 2013: Trang web của Paul Prescod dường như đã ngoại tuyến và bài viết này không còn nữa, các bản sao có thể được tìm thấy trên Wayback Machine hoặc dưới dạng PDF tại CiteSeerX .
NGHỈ NGƠI
Tôi hiểu ý tưởng chính của REST cực kỳ đơn giản. Chúng tôi đã sử dụng các trình duyệt web trong nhiều năm và chúng tôi đã thấy các trang web dễ dàng, linh hoạt, hiệu suất, v.v. Các trang web HTML sử dụng các siêu liên kết và biểu mẫu làm phương tiện chính cho sự tương tác của người dùng. Mục tiêu chính của họ là cho phép chúng tôi, khách hàng, chỉ biết những liên kết mà chúng tôi có thể sử dụng trong trạng thái hiện tại . Và REST chỉ đơn giản nói 'tại sao không sử dụng các nguyên tắc tương tự để điều khiển máy tính thay vì máy khách của con người thông qua ứng dụng của chúng tôi?' Kết hợp điều này với sức mạnh của cơ sở hạ tầng WWW và bạn sẽ có được một công cụ giết người để xây dựng các ứng dụng phân tán tuyệt vời.
Một lời giải thích có thể là cho những người suy nghĩ toán học. Mỗi ứng dụng về cơ bản là một bộ máy trạng thái với các hành động logic nghiệp vụ là các trạng thái chuyển tiếp. Ý tưởng của REST là ánh xạ mỗi chuyển đổi vào một số yêu cầu tới một tài nguyên và cung cấp cho khách hàng các liên kết đại diện cho các chuyển đổi có sẵn trong trạng thái hiện tại. Do đó, nó mô hình máy trạng thái thông qua các đại diện và liên kết. Đây là lý do tại sao nó được gọi là Chuyển giao Nhà nước REpresentational.
Thật đáng ngạc nhiên khi tất cả các câu trả lời dường như tập trung vào định dạng tin nhắn hoặc sử dụng động từ HTTP. Trên thực tế, định dạng thông báo hoàn toàn không thành vấn đề, REST có thể sử dụng bất kỳ ai cung cấp mà nhà phát triển dịch vụ cung cấp tài liệu đó. Động từ HTTP chỉ biến dịch vụ thành dịch vụ CRUD, nhưng chưa RESTful. Điều thực sự biến dịch vụ thành dịch vụ REST là các siêu liên kết (còn gọi là điều khiển hypermedia) được nhúng vào phản hồi của máy chủ cùng với dữ liệu và số tiền của chúng phải đủ để bất kỳ khách hàng nào chọn hành động tiếp theo từ các liên kết đó.
Thật không may, thật khó để tìm thấy thông tin chính xác về REST trên Web, ngoại trừ luận án của Roy Fielding . (Anh ấy là người bắt nguồn REST). Tôi muốn giới thiệu cuốn sách 'REST in Practice' vì nó cung cấp một hướng dẫn từng bước toàn diện về cách phát triển từ SOAP sang REST.
XÀ BÔNG
Đây là một trong những dạng có thể của kiểu kiến trúc RPC (gọi thủ tục từ xa). Về bản chất, đó chỉ là một công nghệ cho phép khách hàng gọi các phương thức của máy chủ thông qua các ranh giới dịch vụ (mạng, quy trình, v.v.) như thể họ đang gọi các phương thức cục bộ. Tất nhiên, nó thực sự khác với việc gọi các phương thức cục bộ về tốc độ, độ tin cậy và vân vân, nhưng ý tưởng là đơn giản.
So
Các chi tiết như giao thức vận chuyển, định dạng tin nhắn, xsd, wsdl, v.v. không quan trọng khi so sánh bất kỳ dạng RPC nào với REST. Sự khác biệt chính là dịch vụ RPC phục hồi xe đạp bằng cách thiết kế giao thức ứng dụng của riêng nó trong API RPC với ngữ nghĩa mà chỉ có nó biết. Do đó, tất cả các khách hàng phải hiểu giao thức này trước khi sử dụng dịch vụ và không có cơ sở hạ tầng chung nào như bộ nhớ cache có thể được xây dựng do ngữ nghĩa độc quyền của tất cả các yêu cầu. Hơn nữa, API RPC không đề xuất những hành động nào được cho phép trong trạng thái hiện tại, điều này phải được lấy từ tài liệu bổ sung. Mặt khác, REST ngụ ý sử dụng các giao diện thống nhất để cho phép các khách hàng khác nhau hiểu một số ngữ nghĩa API và các điều khiển hypermedia (liên kết) để làm nổi bật các tùy chọn có sẵn ở mỗi trạng thái. Như vậy
Theo một cách nào đó, SOAP (như bất kỳ RPC nào khác) là một nỗ lực để vượt qua ranh giới dịch vụ coi phương tiện kết nối là một hộp đen chỉ có khả năng truyền tin nhắn. REST là một quyết định thừa nhận rằng Web là một hệ thống thông tin phân tán khổng lồ, chấp nhận thế giới như hiện tại và học cách làm chủ nó thay vì chiến đấu chống lại nó.
SOAP dường như rất tốt cho các API mạng nội bộ, khi bạn kiểm soát cả máy chủ và máy khách và trong khi các tương tác không quá phức tạp. Nó tự nhiên hơn cho các nhà phát triển sử dụng nó. Tuy nhiên, đối với API công khai được nhiều bên độc lập sử dụng, phức tạp và lớn, REST nên phù hợp hơn. Nhưng so sánh cuối cùng này là rất mờ nhạt.
Cập nhật
Kinh nghiệm của tôi đã bất ngờ cho thấy việc phát triển REST khó khăn hơn SOAP. Ít nhất là cho .NET. Mặc dù có các khung công tác tuyệt vời như ASP.NET Web API, nhưng không có công cụ nào có thể tự động tạo proxy phía máy khách. Không có gì giống như 'Thêm tham chiếu dịch vụ web' hoặc 'Thêm tham chiếu dịch vụ WCF'. Người ta phải viết tất cả các mã truy vấn nối tiếp và dịch vụ bằng tay. Và người đàn ông, đó là rất nhiều mã soạn sẵn. Tôi nghĩ rằng phát triển REST cần một cái gì đó tương tự như WSDL và triển khai công cụ cho mỗi nền tảng phát triển. Trên thực tế, dường như có một nền tảng tốt: WADL hoặc WSDL 2.0 , nhưng cả hai tiêu chuẩn dường như không được hỗ trợ tốt.
Cập nhật (tháng 1 năm 2016)
Hóa ra hiện nay có rất nhiều công cụ để định nghĩa API REST. Sở thích cá nhân của tôi hiện tại là RAML .
Dịch vụ web hoạt động như thế nào
Vâng, đây là một câu hỏi quá rộng, bởi vì nó phụ thuộc vào kiến trúc và công nghệ được sử dụng trong dịch vụ web cụ thể. Nhưng nói chung, một dịch vụ web chỉ đơn giản là một số ứng dụng trong Web có thể chấp nhận các yêu cầu từ khách hàng và trả lời phản hồi. Nó được tiếp xúc với Web, do đó, đây là một dịch vụ web và thường có sẵn 24/7, đó là lý do tại sao nó là một dịch vụ . Tất nhiên, nó giải quyết một số vấn đề (nếu không thì tại sao ai đó sẽ sử dụng dịch vụ web) cho khách hàng của mình.
Đây là lời giải thích đơn giản nhất mà bạn từng tìm thấy.
Bài viết này đưa câu chuyện kể về người chồng, người chồng giải thích cho vợ về REST, theo cách nói của giáo dân thuần túy. Phải đọc!
how-i-giải thích-rest-to-my-vợ (liên kết ban đầu)
how-i-giải thích-rest-to-my-vợ (liên kết làm việc 2013-07-19)
SOAP - Giao thức truy cập đối tượng đơn giản là một giao thức !
REST - Chuyển giao nhà nước liên quan là một phong cách kiến trúc !
SOAP
là một giao thức XML được sử dụng để truyền tin nhắn, thường là qua HTTP
REST
và SOAP
được cho là không loại trừ lẫn nhau. Một kiến trúc RESTful có thể sử dụng HTTP
hoặc SOAP
hoặc một số giao thức truyền thông khác. REST
được tối ưu hóa cho web và do đó HTTP
là một lựa chọn hoàn hảo. HTTP
cũng là giao thức duy nhất được thảo luận trong bài báo của Roy Fielding.
Mặc dù REST và SOAP rõ ràng rất khác nhau, nhưng câu hỏi làm sáng tỏ thực tế đó REST
và HTTP
thường được sử dụng song song. Điều này chủ yếu là do sự đơn giản của HTTP và ánh xạ rất tự nhiên của nó theo các nguyên tắc RESTful.
Giao tiếp giữa máy khách và máy chủ
Kiến trúc máy khách-máy chủ có một mối quan tâm rất riêng biệt. Tất cả các ứng dụng được xây dựng theo kiểu RESTful cũng phải là máy khách-máy chủ trong hoàng tử.
Không quốc tịch
Mỗi yêu cầu của máy khách đến máy chủ yêu cầu trạng thái của nó được thể hiện đầy đủ. Máy chủ phải có thể hiểu hoàn toàn yêu cầu của máy khách mà không cần sử dụng bất kỳ bối cảnh máy chủ hoặc trạng thái phiên máy chủ nào. Nó theo sau rằng tất cả các trạng thái phải được giữ trên máy khách. Chúng tôi sẽ thảo luận về đại diện không quốc tịch chi tiết hơn sau.
Bộ nhớ cache
Các ràng buộc bộ đệm có thể được sử dụng, do đó cho phép dữ liệu phản hồi được đánh dấu là có thể lưu trong bộ nhớ cache hoặc không lưu trong bộ nhớ cache. Bất kỳ dữ liệu nào được đánh dấu là có thể lưu trong bộ nhớ cache có thể được sử dụng lại làm phản hồi cho cùng một yêu cầu tiếp theo.
Giao diện thống nhất
Tất cả các thành phần phải tương tác thông qua một giao diện thống nhất duy nhất. Bởi vì tất cả các tương tác thành phần xảy ra thông qua giao diện này, tương tác với các dịch vụ khác nhau rất đơn giản. Giao diện giống nhau! Điều này cũng có nghĩa là những thay đổi thực hiện có thể được thực hiện một cách cô lập. Những thay đổi như vậy, sẽ không ảnh hưởng đến tương tác thành phần cơ bản vì giao diện thống nhất luôn không thay đổi. Một nhược điểm là bạn bị kẹt với giao diện. Nếu tối ưu hóa có thể được cung cấp cho một dịch vụ cụ thể bằng cách thay đổi giao diện, bạn sẽ không gặp may vì REST cấm điều này. Tuy nhiên, về mặt sáng sủa, REST được tối ưu hóa cho web, do đó mức độ phổ biến đáng kinh ngạc của REST so với HTTP!
Các khái niệm trên thể hiện các đặc điểm xác định của REST và phân biệt kiến trúc REST với các kiến trúc khác như các dịch vụ web. Rất hữu ích khi lưu ý rằng dịch vụ REST là dịch vụ web, nhưng dịch vụ web không nhất thiết phải là dịch vụ REST.
Xem bài đăng trên blog này về Hiệu trưởng thiết kế REST để biết thêm chi tiết về REST và các viên đạn đã nêu ở trên.
Tôi thích câu trả lời của Brian R. Bondy. Tôi chỉ muốn thêm rằng Wikipedia cung cấp một mô tả rõ ràng về REST . Bài viết phân biệt nó với SOAP.
REST là một trao đổi thông tin trạng thái, được thực hiện đơn giản nhất có thể.
SOAP là một giao thức tin nhắn sử dụng XML.
Một trong những lý do chính khiến nhiều người chuyển từ SOAP sang REST là các tiêu chuẩn WS- * (được gọi là WS splat) được liên kết với các dịch vụ web dựa trên SOAP rất phức tạp. Xem wikipedia để biết danh sách các thông số kỹ thuật. Mỗi thông số kỹ thuật là rất phức tạp.
EDIT: vì một số lý do các liên kết không hiển thị chính xác. REST = http://en.wikipedia.org/wiki/REST
WS- * = http://en.wikipedia.org/wiki/WS- *
Cả dịch vụ web SOAP và dịch vụ web REST đều có thể sử dụng giao thức HTTP và các giao thức khác (chỉ cần đề cập đến SOAP có thể là giao thức cơ bản của REST). Tôi sẽ chỉ nói về giao thức HTTP liên quan đến SOAP và REST, vì đây là cách sử dụng chúng thường xuyên nhất.
SOAP (giao thức truy cập đối tượng "đơn giản") là một giao thức (và tiêu chuẩn W3C ). Nó định nghĩa cách tạo, gửi và xử lý tin nhắn SOAP.
Các thông báo SOAP là các tài liệu XML có cấu trúc cụ thể: chúng chứa một phong bì chứa phần tiêu đề và phần thân. Phần thân chứa dữ liệu thực tế - chúng tôi muốn gửi - theo định dạng XML. Có hai kiểu mã hóa , nhưng chúng tôi thường chọn bằng chữ , điều đó có nghĩa là ứng dụng của chúng tôi hoặc trình điều khiển SOAP của nó thực hiện tuần tự hóa XML và không xác định dữ liệu.
Các thông báo SOAP di chuyển dưới dạng các thông điệp HTTP với tiểu loại SOAP + XML MIME. Các thông điệp HTTP này có thể là nhiều phần, do đó, tùy chọn chúng ta có thể đính kèm các tệp vào các thông báo SOAP.
Rõ ràng chúng tôi sử dụng kiến trúc máy khách-máy chủ, vì vậy các máy khách SOAP gửi yêu cầu đến các weberer SOAP và các dịch vụ gửi lại phản hồi cho khách hàng. Hầu hết các dịch vụ web sử dụng tệp WSDL để mô tả dịch vụ. Tệp WSDL chứa Lược đồ XML (sau đây là XSD) của dữ liệu chúng tôi muốn gửi và liên kết WSDL xác định cách thức dịch vụ web được liên kết với giao thức HTTP. Có hai kiểu ràng buộc: RPC và tài liệu. Theo kiểu RPC ràng buộc, thân SOAP chứa biểu diễn của một lệnh gọi hoạt động với các tham số (yêu cầu HTTP) hoặc các giá trị trả về (phản hồi HTTP). Các tham số và giá trị trả về được xác nhận theo XSD. Theo kiểu tài liệu ràng buộc phần thân SOAP chứa một tài liệu XML được xác nhận hợp lệ với XSD. Tôi nghĩ rằng kiểu liên kết tài liệu phù hợp hơn với các hệ thống dựa trên sự kiện, nhưng tôi không bao giờ sử dụng kiểu liên kết đó. Kiểu liên kết RPC phổ biến hơn, vì vậy hầu hết mọi người sử dụng SOAP cho các mục đích XML / RPC bởi các ứng dụng phân tán. Các dịch vụ web thường tìm thấy nhau bằng cách yêu cầu máy chủ UDDI . Máy chủ UDDI là cơ quan đăng ký lưu trữ vị trí của dịch vụ web.
Vì vậy, theo ý kiến của tôi - dịch vụ web SOAP phổ biến nhất sử dụng kiểu liên kết RPC và kiểu mã hóa theo nghĩa đen và nó có các thuộc tính sau:
REST (chuyển trạng thái đại diện) là một kiểu kiến trúc được mô tả trong luận văn của Roy Fielding. Nó không quan tâm đến các giao thức như SOAP. Nó bắt đầu với một kiểu kiến trúc null không có ràng buộc và xác định các ràng buộc của kiến trúc REST từng cái một. Mọi người sử dụng thuật ngữ RESTful cho các dịch vụ web đáp ứng tất cả các ràng buộc REST, nhưng theo Roy Fielding, không có những thứ như cấp độ REST . Khi một dịch vụ web không đáp ứng với mọi ràng buộc REST, thì đó không phải là dịch vụ web REST.
Giao diện thống nhất
https://example.com/api/v1/users?offset=50&count=25
. URL có một số thông số kỹ thuật, ví dụ: các URL có cùng đường dẫn nhưng các truy vấn khác nhau không giống nhau hoặc phần đường dẫn phải chứa dữ liệu chữ tượng hình của URL và phần truy vấn sẽ chứa dữ liệu không phân cấp. Đây là những điều cơ bản về cách tạo URL bằng REST. Btw. cấu trúc URL chỉ quan trọng đối với các nhà phát triển dịch vụ, một khách hàng REST thực sự không quan tâm đến nó. Một câu hỏi thường gặp khác là phiên bản API, đây là một câu hỏi dễ, bởi vì theo Fielding, điều duy nhất không đổi theo tài nguyên là ngữ nghĩa. Nếu ngữ nghĩa thay đổi, thì bạn có thể thêm số phiên bản mới. Bạn có thể sử dụng phiên bản 3 số cổ điển và chỉ thêm số chính vào các URL (https://example.com/api/v1/
). Vì vậy, bằng những thay đổi tương thích ngược, không có gì xảy ra, bởi những thay đổi không tương thích ngược, bạn sẽ có một ngữ nghĩa tương thích không ngược với một gốc API mới https://example.com/api/v2/
. Vì vậy, các khách hàng cũ sẽ không phá vỡ, bởi vì họ có thể sử dụng https://example.com/api/v1/
với ngữ nghĩa cũ.PATCH https://example.com/api/v1/users/1 {name: "Mrs Smith"}
yêu cầu trong đó {name: "Mrs Smith"}
đại diện JSON của trạng thái tài nguyên dự định, nói cách khác: tên mới. Điều này xảy ra vica-ngược lại, dịch vụ gửi đại diện tài nguyên cho khách hàng để thay đổi trạng thái của họ. Ví dụ: nếu chúng tôi muốn đọc tên mới, chúng tôi có thể gửi GET https://example.com/api/v1/users/1?fields="name"
yêu cầu truy xuất, kết quả là200 ok, {name: "Mrs Smith"}
phản ứng. Vì vậy, chúng tôi có thể sử dụng đại diện này để thay đổi trạng thái máy khách, ví dụ: chúng tôi có thể hiển thị "Chào mừng bạn đến trang của chúng tôi, bà Smith!" thông điệp. Một tài nguyên có thể có nhiều biểu diễn tùy thuộc vào mã định danh tài nguyên (URL) hoặc accept
tiêu đề chúng tôi đã gửi với yêu cầu. Ví dụ: chúng tôi có thể gửi hình ảnh của bà Smith (có thể không khỏa thân) nếu image/jpeg
được yêu cầu.Hypermedia là công cụ của trạng thái ứng dụng (HATEOAS sau đây) - Hypermedia là một loại phương tiện có thể chứa các siêu liên kết. Bằng web, chúng tôi theo các liên kết - được mô tả bằng định dạng hypermedia (thường là HTML) - để đạt được mục tiêu, thay vì nhập URL vào thanh địa chỉ. REST theo cùng một khái niệm, các đại diện được gửi bởi dịch vụ có thể chứa các siêu liên kết. Chúng tôi sử dụng các siêu liên kết này để gửi yêu cầu đến dịch vụ. Với phản hồi, chúng tôi nhận được dữ liệu (và có thể nhiều liên kết hơn) mà chúng tôi có thể sử dụng để xây dựng trạng thái máy khách mới, v.v ... Vậy đó là lý do tại sao hypermedia là công cụ của trạng thái ứng dụng (trạng thái máy khách). Bạn có thể tự hỏi làm thế nào để khách hàng nhận ra và theo các siêu liên kết? Bởi con người khá đơn giản, chúng tôi đọc tiêu đề của liên kết, có thể điền vào các trường đầu vào và sau đó chỉ bằng một cú nhấp chuột.JSON-LD với Hydra ) hoặc với các giải pháp cụ thể của hypermedia (ví dụ: quan hệ liên kết IANA và các loại MIME cụ thể của nhà cung cấp theo HAL + JSON ). Có nhiều định dạng hypermedia XML và JSON có thể đọc được bằng máy , chỉ là một danh sách ngắn của chúng:
Đôi khi thật khó để chọn ...
Vì vậy, một dịch vụ web REST rất khác với dịch vụ web SOAP (với kiểu liên kết RPC và kiểu mã hóa theo nghĩa đen)
và như thế...
Dịch vụ web SOAP RPC không đáp ứng tất cả các ràng buộc REST:
Vâng, tôi sẽ bắt đầu với câu hỏi thứ hai: Dịch vụ web là gì? , vì lý do rõ ràng.
Dịch vụ web về cơ bản là các phần logic (mà bạn có thể mơ hồ gọi là một phương thức) phơi bày chức năng hoặc dữ liệu nhất định. Máy khách thực hiện (nói về mặt kỹ thuật, tiêu thụ là từ) chỉ cần biết (các) tham số mà phương thức sẽ chấp nhận và loại dữ liệu mà nó sẽ trả về (nếu có).
Liên kết sau đây nói lên tất cả về REST & SOAP một cách cực kỳ sáng suốt.
Nếu bạn cũng muốn biết khi nào nên chọn cái gì (REST hoặc SOAP), tất cả lý do để đi qua nó!
Cả SOAP và REST đều đề cập đến các cách để các hệ thống khác nhau nói chuyện với nhau.
REST thực hiện điều này bằng cách sử dụng các kỹ thuật tương tự như giao tiếp mà trình duyệt của bạn có với các máy chủ web: sử dụng GET để yêu cầu một trang web, POST trong các trường mẫu, v.v.
SOAP cung cấp một cái gì đó tương tự nhưng thực hiện mọi thứ thông qua việc gửi các khối XML qua lại. Một thành phần quan trọng khác của SOAP là WSDL là một tài liệu XML mô tả các chức năng và thành phần dữ liệu nào được hỗ trợ. WSDL có thể được sử dụng để "khám phá" lập trình những chức năng nào được hỗ trợ cũng như để tạo ra các sơ đồ mã lập trình.
Tôi nghĩ rằng điều này là dễ dàng như tôi có thể giải thích nó. Xin vui lòng, bất cứ ai cũng được chào đón để sửa chữa tôi hoặc thêm vào điều này.
SOAP là một định dạng tin nhắn được sử dụng bởi các hệ thống bị ngắt kết nối (như trên internet) để trao đổi thông tin / dữ liệu. Nó thực hiện với các thông điệp XML qua lại.
Dịch vụ web truyền hoặc nhận tin nhắn SOAP. Chúng hoạt động khác nhau tùy thuộc vào ngôn ngữ chúng được viết.
Vấn đề với SOAP là nó mâu thuẫn với những lý tưởng đằng sau ngăn xếp HTTP. Bất kỳ phần mềm trung gian nào cũng có thể hoạt động với các yêu cầu HTTP mà không hiểu nội dung của yêu cầu hoặc phản hồi, nhưng ví dụ, máy chủ bộ đệm HTTP thông thường sẽ không hoạt động với các yêu cầu SOAP mà không biết phần nào của nội dung SOAP cho bộ đệm. SOAP chỉ sử dụng HTTP làm trình bao bọc cho giao thức truyền thông của riêng mình, như proxy.
SOAP - "Giao thức truy cập đối tượng đơn giản"
SOAP là một chút chuyển tin nhắn, hoặc một lượng nhỏ thông tin qua Internet. Các thông báo SOAP được định dạng bằng XML và thường được gửi kiểm soát HTTP .
REST - "Chuyển giao nhà nước liên quan"
REST là một tiến trình thô sơ của tình huống và nhận thông tin giữa người hâm mộ và máy chủ và nó không có nhiều tiêu chuẩn được xác định rõ ràng. Bạn có thể gửi và chấp nhận thông tin dưới dạng JSON , XML hoặc thậm chí là văn bản thuần túy. Đó là trọng lượng nhẹ so với SOAP .
Tóm lại, các dịch vụ web dựa trên SOAP, mô hình Dịch vụ dựa trên SOAP xem thế giới là một hệ sinh thái của các đồng đẳng không thể kiểm soát lẫn nhau, nhưng phải hợp tác với nhau bằng cách tôn trọng các hợp đồng được công bố. Đó là một mô hình hợp lệ của thế giới thực lộn xộn và các hợp đồng dựa trên siêu dữ liệu tạo thành Giao diện dịch vụ SOAP.
chúng ta vẫn có thể liên kết SOAP với các cuộc gọi thủ tục từ xa dựa trên XML, nhưng công nghệ dịch vụ web SOAPbided đã nổi lên thành một mô hình nhắn tin linh hoạt và mạnh mẽ.
SOAP giả định tất cả các hệ thống là độc lập và không có hệ thống nào có kiến thức về nội bộ của chức năng khác và nội bộ. Hầu hết các hệ thống như vậy có thể làm là gửi tin nhắn cho nhau và hy vọng chúng sẽ được xử lý. Các hệ thống xuất bản các hợp đồng mà họ cam kết tôn vinh và các hệ thống khác dựa vào các hợp đồng này để trao đổi tin nhắn với họ.
Hợp đồng giữa các hệ thống được gọi chung là siêu dữ liệu và bao gồm các mô tả dịch vụ, các mẫu trao đổi thông điệp được hỗ trợ và các chính sách điều chỉnh chất lượng dịch vụ (một dịch vụ có thể cần được mã hóa, cung cấp đáng tin cậy, v.v.) đặc điểm kỹ thuật của dữ liệu (tài liệu tin nhắn) sẽ được hệ thống gửi và nhận. Các tài liệu được mô tả bằng ngôn ngữ mô tả XML như Định nghĩa lược đồ XML. Miễn là tất cả các hệ thống tôn trọng các hợp đồng được công bố của chúng, chúng có thể hoạt động và các thay đổi đối với các hệ thống bên trong không bao giờ ảnh hưởng đến bất kỳ hệ thống nào khác. Mỗi hệ thống có trách nhiệm dịch các triển khai nội bộ của riêng mình sang và từ các hợp đồng của nó
REST - Chuyển giao nhà nước liên quan. Giao thức vật lý là HTTP. Về cơ bản, REST là tất cả các tài nguyên riêng biệt trên web có thể được nhận dạng duy nhất bởi một URL. Tất cả các hoạt động có thể được thực hiện trên các tài nguyên này có thể được mô tả bằng một nhóm động từ giới hạn (các động từ CRUD Hồi), lần lượt ánh xạ tới các động từ HTTP.
REST's ít nặng hơn nhiều so với SOAP.