RESTful Web Service và những điều bạn cần biết về nó

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.

RESTful Web Service dùng để chỉ những dịch vụ web được phát triển theo kiến trúc REST (Nguồn: Unspash.com).
RESTful Web Service dùng để chỉ những dịch vụ web được phát triển theo kiến trúc REST (Nguồn: Unspash.com)

Đặ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).

Facebook và Twitter cũng sử dụng RESTful Web Service (Nguồn: Unsplash.com).
Facebook và Twitter cũng sử dụng RESTful Web Service (Nguồn: Unsplash.com).

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à:

https://vn.got-it.ai.

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.
RESTful Web Service dùng các lệnh để thực hiện yêu cầu giữa máy khách - máy chủ (Nguồn: Unsplash.com).
RESTful Web Service dùng các lệnh để thực hiện yêu cầu giữa máy khách – máy chủ (Nguồn: Unsplash.com).

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.

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 07, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
RESTful Web Service và những điều bạn cần biết về nó

RESTful Web Service và những điều bạn cần biết về nó

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. Mục lụcTổng quan về RESTful Web ServiceRESTful Web Service là gì?Đặc điểmNguồn gốcNhững yếu tố chính của RESTful Web Service1. Tài […]
RESTful API Laravel và những ưu, nhược điểm của nó

RESTful API Laravel và những ưu, nhược điểm của nó

So với nhiều loại API khác, RESTful API Laravel có nhiều ưu điểm đáng ghi nhận. Bài viết này sẽ phân tích những ưu và nhược điểm của việc xây dựng RESTful API với Laravel. Mục lụcRESTful API Laravel là gì?Ưu điểm của việc tạo RESTful API bằng Laravel1. Dễ cấu hình và mở rộng2. […]
RESTful API là gì? 6 ràng buộc kiến trúc cơ bản của RESTful API

RESTful API là gì? 6 ràng buộc kiến trúc cơ bản của RESTful API

RESTful API từ lâu đã không còn là khái niệm xa lạ đối với các lập trình viên. Bài viết này sẽ trình bày một số nội dung tổng quát liên quan đến RESTful API. Mục lụcRESTful API là gì?Những ràng buộc kiến trúc cơ bản của RESTful API1. Client–server (Máy khách – máy chủ)2. […]
Người “thầy giáo” Tiếng Anh đặc biệt của team QA

Người “thầy giáo” Tiếng Anh đặc biệt của team QA

Ở Got It, có một người “thầy” đặc biệt mới chỉ 25 tuổi. Người “thầy” này không phải một nhân vật nào đó tầm cỡ, càng không phải một người làm trong nghề giáo. Thế nhưng, từ bé Intern nhỏ tuổi đến người đàn anh đã sừng sỏ, ai cũng gọi chàng trai này với […]
Hai năm trưởng thành cùng PhotoStudy của chàng kỹ sư Frontend

Hai năm trưởng thành cùng PhotoStudy của chàng kỹ sư Frontend

Là thành viên của Got It được 545 ngày, Sơn đã có 544 ngày đảm nhiệm vai trò kỹ sư Frontend của team PhotoStudy. Ở một team có nền móng lâu đời, với sản phẩm ổn định, gặt hái được nhiều thành công, một Frontend Engineer trẻ như Sơn hẳn sẽ có nhiều trải nghiệm […]
Ký sự onboarding từ xa của Hưng cùng mentor Jerry!

Ký sự onboarding từ xa của Hưng cùng mentor Jerry!

Từ khi Got It bắt đầu work from home cho đến nay, Hưng (hiện là Software Engineering Intern) chính là thành viên đầu tiên cập bến team Engineer. Trải nghiệm của Hưng vì thế cũng trở nên đặc biệt: Toàn bộ hành trình ứng tuyển, onboarding và training cùng mentor của cậu đều chỉ diễn ra […]