Web service là gì? So sánh RESTful với SOAP (rest và soap)

Web service là gì? So sánh RESTful với SOAP (rest và soap)

Có khá nhiều cách định nghĩa khác nhau về web service, do nó được định nghĩa bởi nhiều tổ chức khác nhau và một phần là do đã trải qua thay đổi khá nhiều.

Web Service là gì?

Web Serice là 1 ứng dụng client server giao tiếp với nhau qua giao tiếp HTTP/HTTPS.

Web Service cung cấp 1 chuẩn giao tiếp chung giữa các nền tảng, framework, ứng dụng…

Khi sử dụng web service ta chỉ quan tâm đầu vào là gì và đầu ra là gì mà không cần quan tâm tới hệ điều hành, ngôn ngữ lập trình… của ứng dụng gửi yêu cầu là gì.

Ví dụ:

Ứng dụng A cung cấp chức năng lấy thông tin của 1 user qua url là “stackjava.com/user/id“,

Đầu vào là id của user, đầu ra là thông tin của user đó.

Bây giờ ta có một ứng dụng trên mobile, trên web, trên desktop đều muốn lấy thông tin user thì chỉ cần gửi request tới ứng dụng A kèm theo id của user muốn lấy thông tin.

Ứng dụng A sẽ nhận id gửi tới và trả về kết quả mà không phân biệt request được gửi từ đâu, viết bằng ngôn ngữ gì.

Rõ ràng việc trao đổi dữ liệu giữa ứng dụng A với các ứng dụng khác không phụ thuộc vào ngôn ngữ hay môi trường,

Web service là gì? So sánh RESTful với SOAP (rest và soap)

So sánh SOAP với RESTful

SOAP (stands for Simple Object Access Protocol) và RESTful (REpresentational State Transfer) là 2 kiểu thực hiện web service khác nhau.

Sự khác nhau cơ bản giữa SOAP và RESTful là:

  • SOAP chỉ trả về dữ liệu dạng XML còn RESful trả về dữ liệu ở nhiều định dạng khác nhau: Plain Text, HTML, XML and JSON…
  • Tốc độ của RESTFul nhanh hơn SOAP
  • SOAP có tính bảo mật và toàn vẹn hơn RESTful
  • SOAP là một kiểu giao thức (protocol) na ná như HTTP, nó cũng có phần header, body… để định nghĩa dữ liệu gửi về còn RESTFul giống như 1 kiểu kiến trúc gửi/ nhận (client gửi request/dữ liệu tới, server trả dữ liệu tương ứng về)

(Về chi tiết hoạt động của SOAP và RESTful thì mình sẽ giới thiệu trong từng bài riêng)

Code ví dụ tạo RESTful Web Service với Spring MVC

Web service là gì? So sánh RESTful với SOAP (rest và soap)

References:

https://docs.oracle.com/javaee/6/tutorial/doc/bnayk.html

https://en.wikipedia.org/wiki/Web_service

https://www.ibm.com/support/knowledge,….definition.html

stackjava.com