Bên cạnh SOAP, RESTful Web Service là một loại hình được sử dụng phổ biến hiện nay. Bài viết này sẽ giúp bạn hình dung rõ hơn về dịch vụ Web nổi tiếng này.
Tổng quan về RESTful Web Service
RESTful Web Service là gì?
RESTful Web Service là thuật ngữ dùng để chỉ những dịch vụ web được phát triển theo kiến trúc REST (hay còn gọi là dịch vụ web REST). Trong đó, REST là viết tắt của Representational State Transfer (Truyền trạng thái đại diện). Khái niệm này được Roy Fielding giới thiệu lần đầu tiên vào năm 2000 trong luận văn tiến sĩ nổi tiếng của ông.
Hiểu đơn giản, REST là một cách thức giúp bạn truy cập các tài nguyên nằm trong một môi trường cụ thể. Ví dụ, bạn có một máy chủ dùng để lưu các tài liệu, hình ảnh hoặc video quan trọng. Tất cả những điều này là chính là tài nguyên.
Nếu một máy khách cần truy cập bất kỳ tài nguyên nào, nó phải gửi yêu cầu đến máy chủ. Trường hợp đơn giản nhất là khi máy khách chính là trình duyệt web của bạn. Khi đó, các dịch vụ web REST sẽ xác định cách thức để những tài nguyên này có thể được truy cập.
Đặc điểm
Nhìn chung, những dịch vụ web REST sẽ có những đặc điểm chung như sau:
- Chúng đều là những dịch vụ được xây dựng trên kiến trúc REST.
- Đây là một dịch vụ nhẹ, dễ bảo trì và có thể mở rộng.
- Nó có khả năng khôi phục, hiển thị API theo yêu cầu của ứng dụng khách một cách an toàn, thống nhất và vô trạng thái.
- Máy khách có thể thực hiện các hoạt động được xác định trước thông qua các dịch vụ REST.
- Giao thức cơ bản cho REST là HTTP.
Nguồn gốc
Các dịch vụ web REST thực sự đã trải qua một chặng đường rất dài kể từ khi mới hình thành. Năm 2002, W3C (The World Wide Web Consortium – Hiệp hội Web Thế giới) đã đưa ra định nghĩa về các dịch vụ web WSDL và SOAP. Đây chính là tiêu chuẩn để các dịch vụ web có thể triển khai sau đó.
Đến năm 2004, W3C tiếp tục đưa ra định nghĩa về một tiêu chuẩn bổ sung được gọi là RESTful. Trải qua nhiều năm, tiêu chuẩn này ngày càng trở nên phổ biến và được ưa chuộng.
Hiện nay, dịch vụ web REST đang được sử dụng bởi nhiều trang web phổ biến trên thế giới bao gồm cả Facebook và Twitter. Nó là một trong hai dịch vụ web được sử dụng nhiều nhất, bên cạnh SOAP (Simple Object Access Protocol – Giao thức truy cập đối tượng đơn giản).
Những yếu tố chính của RESTful Web Service
Những yếu tố chính của RESTful Web Service bao gồm:
1. Tài nguyên
Tài nguyên chính là yếu tố quan trọng đầu tiên của RESTful Web Service.
Lấy ví dụ, chúng ta có một ứng dụng web chạy trên máy chủ chứa hồ sơ của một số nhân viên. Giả sử URL của ứng dụng web là:
Giờ đây, để truy cập tài nguyên hồ sơ nhân viên thông qua các dịch vụ REST, người ta có thể ra lệnh:
https://vn.got-it.ai/employee/1
Lệnh này yêu cầu máy chủ web cung cấp thông tin chi tiết về nhân viên có mã số 1.
2. Request Verbs (Động từ Yêu cầu)
Những động từ này mô tả những gì bạn muốn làm với tài nguyên. Chúng bao gồm: POST (đăng), GET (nhận), PUT (đặt) và DELETE (xóa).
Quay trở lại ví dụ về ứng dụng web: https://vn.got-it.ai/employee/1. Trong trường hợp này, các động từ trên sẽ có ý nghĩa như sau:
- POST: lệnh này được dùng để nạp dữ liệu của nhân viên số 1.
- GET: trình duyệt web sử dụng GET vì nó muốn lấy chi tiết của hồ sơ nhân viên số 1.
- PUT: lệnh này dùng để cập nhật thông tin chi tiết của nhân viên số 1 bằng dịch vụ web REST.
- DELETE: lệnh này được dùng để xóa tất cả thông tin chi tiết của hồ sơ nhân viên số 1.
3. Request Headers (Tiêu đề Yêu cầu)
Đây chính là những hướng dẫn bổ sung được gửi cùng với yêu cầu. Chúng có thể xác định loại phản hồi được yêu cầu hoặc chi tiết ủy quyền.
4. Request Body (Nội dung yêu cầu)
Đây chính là những dữ liệu được gửi kèm theo yêu cầu. Thông thường, dữ liệu chỉ được gửi khi có một yêu cầu POST được thực hiện. Trong một yêu cầu POST, máy khách sẽ báo với dịch vụ web REST rằng nó muốn thêm tài nguyên vào máy chủ. Khi đó, Request Body sẽ bao gồm những thông tin chi tiết về những tài nguyên này.
5. Response Body (Nội dung phản hồi)
Đây là phần nội dung chính của phản hồi.
Quay trở lại ví dụ về ứng dụng web: https://vn.got-it.ai/employee/1.
Khi chúng ta đưa yêu cầu truy vấn, thì máy chủ có thể sẽ trả về tài liệu XML. Trong đó, nó sẽ bao gồm tất cả những thông tin chi tiết của nhân viên có hồ sơ số 1. Đó chính là Response Body.
6. Response Status codes (Mã trạng thái phản hồi)
Đây chính là các mã chung được trả về cùng với phản hồi từ máy chủ web. Chẳng hạn, mã 200 thường được trả về nếu quá trình phản hồi với máy khách không xảy ra lỗi.
Tóm lại, người dùng cần phải có nhiều thời gian tìm hiểu để có thể làm chủ được dịch vụ web REST. Hy vọng qua bài viết này, các bạn có thể hiểu thêm về RESTful Web Service và sử dụng nó tốt hơn trong tương lai.