Tìm hiểu về RESTful Web Service
Bài đăng này đã không được cập nhật trong 6 năm
Web Service
Định nghĩa: Web Service là một hệ thống phần mềm, được thiết kế để hỗ trợ việc tương tác giữa các thiết bị với nhau thông qua mạng.
Tại sao lại là Web Service?
Web Service rất hiệu quả trong việc giao tiếp giữa các hệ thống và các thiết bị khác nhau. Ở trong trường hợp phát triển các ứng dụng di động, web service được sử dụng để cung các giao thức giúp cho Mobile app cos thể tương tác với một Server, nhằm lấy hoặc lưu trữ dữ liệu ở DB. Việc triển khai như vậy sẽ giúp cho các ứng dụng phía client(Mobile App) tách biệt vơi logic ở phía Server.
Ngày nay, hầu hết các ứng dụng mobile đều đòi hỏi phải chạy được độc lập, tách biệt với phía Server và chỉ tương tác với logic phía Server thông qua các giao thức Web Service. Vì vậy, hiện tại Web Service đóng một vai trò rất quan trọng trong việc phát triển các ứng dụng mobile.
Cách sử dụng Web Service là không giới hạn, client có thể sử dụng Web Service để giao tiếp với Server, hoặc chính Server cũng sử dụng Web Service để giao tiếp với một Server khác (Lúc này Server đóng vai trò như một Client).
Ngoài ra thì, ngày nay khi phát triển các ứng dụng di động, chúng ta hay dùng thuật ngữ API nhiều hơn khi nói về Web Service. Về cơ bản, API và Web service đều hoạt động đóng vai trò như các phương tiện giao tiếp giữa các thiết bị. Điểm khác biệt duy nhất giữa API và Web service chính là Web Service tạo thuận lợi cho sự tương tác giữa hai thiết bị qua mạng(VD: Google APIs, FB API...), còn API thì hoạt động như một giao thức(interface) giữa hai ứng dụng khác nhau để chúng có thể giao tiếp được với nhau, không quan trọng là phải thông qua mạng (VD: Android Platform APIs).
Kiến trúc REST
REST viết tắt cho Representational State Transfer, được sáng lập bởi Roy Fielding năm 2000.
REST cung cấp một tập hợp các ràng buộc, quy ước về kiến trúc. Khi áp dụng một cách triệt để các ràng buộc, quy ước REST thì ta sẽ có được một hệ thống REST có các đặc điểm sau:
- Mạnh về khả năng mở rộng
- Các giao thức có tính tổng quát cao(dễ hình dung về cách sử dụng)
- Độc lập các thành phần triển khai và các thành phân trung gian để nhằm giảm thiểu độ trễ tương tác, tăng tính bảo mật và dễ dàng đóng gói hệ thống.
Các ràng buộc của REST
REST là một khiến trúc cho các ứng dụng mạng, xây dựng trên nền tảng HTTP 1.1.
Một hệ thống RESTful hay RESTful web service sẽ phải chấp hành 6 ràng buộc, nếu không nó sẽ không được coi là RESTful hay REST. 6 ràng buộc này bao gồm:
1. Client server: ràng buộc này nói rằng, Client và Server phải là hai phần tách biệt. Điều này sẽ giúp cho Client và Server thực hiện công việc của mình dễ dàng hơn, dễ dàng mở rộng và tương tác.
VD: Server không cần biết về giao diện của Mobile App sẽ như thế nào, cũng như Mobile App không cần biết đến cách thức Server lưu trữ dữ liệu như thế nào cả.
2. Stateless
3. Cache-able
4. Uniform interface
5. Code on deman
6. Layered system
All rights reserved