2010-10-16 26 views
6

tôi bắt đầu trong thế giới web-dịch vụ và tôi có một vài câu hỏi:REST của so với SOAP và so với trang web đơn giản, vv

  • Từ những gì tôi đã đọc, REST có thể được hiểu như là một đơn giản gọi đến URL cung cấp kết quả mong đợi nhất định. Vì vậy, sự khác nhau giữa một dịch vụ web REST và một trang web đơn giản là gì?

  • Dịch vụ web độc lập với ngôn ngữ. Vì vậy, nếu tôi đang phát triển một dịch vụ web REST dựa trên Java với một phương thức trả về một đối tượng lớp Person được tuần tự hóa, và ứng dụng khách của tôi là một ứng dụng .NET, thì lớp này có thể được xây dựng lại ở phía .NET như thế nào? Làm thế nào là nó được thực hiện trong thực tế? Tôi có phải xây dựng một đại diện của đối tượng được trả về trên dịch vụ web và trên .NET phân tích cú pháp nó và xây dựng nó không?

  • Trong thực tế, sự khác nhau giữa các cuộc gọi REST và SOAP là gì?

+0

Bạn nên giới thiệu thêm sự gắn kết giữa các câu hỏi này hoặc chia chúng thành các bài đăng riêng biệt. Là một trang hỏi đáp, SO rất sạch sẽ và có các quy tắc khác với một diễn đàn. –

Trả lời

1

Giá trị REST cho Chuyển trạng thái đại diện. Nó được xây dựng trên thực tế là giao thức HTTP là không trạng thái và chỉ định một số phương thức như PUT/GET/POST vv REST đính kèm ngữ nghĩa vào các phương thức đó. Ví dụ, GET có nghĩa là 'Đọc/Tải'. PUT có nghĩa là 'lưu'. POST có nghĩa là 'cập nhật'. (Tôi nghĩ rằng tôi đã đúng ...)

Vì vậy, REST không phải là một cuộc gọi đến một URL, REST là một khái niệm. Bạn sử dụng REST bằng cách thực hiện cuộc gọi đến Url. Sự khác biệt giữa REST và một 'trang web đơn giản' là ngữ nghĩa REST. Yêu cầu PUT có nghĩa là một điều, yêu cầu GET có nghĩa là một yêu cầu khác, v.v.

Dịch vụ web yên tĩnh độc lập vì phụ thuộc vào giao thức HTTP; đó là nó. Chúng không phụ thuộc vào bất kỳ tính năng ngôn ngữ nào, ngoài khả năng sử dụng giao thức HTTP.

+2

Thực ra, HTTP RFC2616 gắn các ngữ nghĩa vào các phương thức. REST chỉ yêu cầu rằng nếu bạn sử dụng HTTP, để sử dụng HTTP một cách nhất quán để tuân thủ ràng buộc Giao diện thống nhất. REST thực sự không phụ thuộc vào HTTP, nhưng trong thực tế đó là những gì được sử dụng 99% thời gian. –

+0

@darrel, bình luận hay. – hvgotcodes

6

Xem Richardson Maturity Model để biết giải thích về dịch vụ RESTful là gì.

alt text

Để đạt mức 3 người ta phải đáp ứng các Hypermedia as the Engine of Application State. abrivated HATEOAS constraint (còn gọi là hạn chế Hypermedia). Điều này có nghĩa rằng hầu hết các dịch vụ trên mạng không phải là yên tĩnh, nhưng các dịch vụ CRUD Merly ... đó là tốt ...

Một nguồn lực tốt trên REST là REST in Practice

Sự khác biệt chính giữa SOAP và REST là các dịch vụ REST không có một WSDL xác định "hoạt động", cảm ơn trời vì điều đó. Tuy nhiên, cấu trúc dữ liệu có thể được xác định bởi một ngôn ngữ lược đồ như Schematron, XSD cho XML ...

+0

Giải thích về điều khiển hypermedia khá tốt. Thx cho liên kết. –

0
  • REST của trả về cấu trúc dữ liệu XML hay JSON, bạn không gửi lại toàn bộ trang web, mà có thể là khó khăn để giải thích và sẽ phức tạp không cần thiết.

  • Bạn có thể phân tích dữ liệu XML hoặc JSON thành đối tượng bằng bất kỳ ngôn ngữ nào với trình phân tích cú pháp cho điều này (bao gồm ngôn ngữ .net). Một đối tượng theo nghĩa này không có nghĩa là một đối tượng .net đầy đủ có vtable, v.v.

  • SOAP làm quá tải dữ liệu POST gửi với yêu cầu HTTP và do đó thay vì có nhiều URL mà bạn gửi yêu cầu riêng lẻ, bạn chỉ có một URL mà bạn đăng một số dữ liệu XML. Trong thực tế, sự khác biệt chủ yếu là ngữ nghĩa.

+1

REST không hạn chế loại phương tiện bạn quay trở lại. Trả lại HTML thực sự tuân thủ nhiều ràng buộc REST hơn là trả về application/xml và application/json và giả định giá trị ngữ nghĩa trong các đại diện chung đó. –

Các vấn đề liên quan