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

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

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ủ

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. […]
Backend Lead

Backend Lead

Hanoi, HCMC | Full-time | On-site | Are you eager to be a part of an innovative startup in Silicon Valley, pioneering the world’s first On-demand Human-in-the-loop platform for Generative AI? With investors who have backed industry leaders like SpaceX and Discord, we’re seeking an outstanding Backend Lead to join our team in Vietnam. As a Backend […]
Operations Associate (Labeling)

Operations Associate (Labeling)

Hanoi, HCMC | Full-time | On-site | Got It is looking for a motivated and organized Operations Associate to join our expanding operations team. In this position, you’ll juggle numerous items, own and drive initiatives, and be challenged to formulate unique solutions to unforeseen problems. You will be part of our team to develop a […]
Backend Engineer (Middle/Senior)

Backend Engineer (Middle/Senior)

Hanoi, HCMC | Full-time | On-site | Are you eager to be a part of an innovative startup in Silicon Valley, pioneering the world’s first On-demand Human-in-the-loop platform for Generative AI? With investors who have backed industry leaders like SpaceX and Discord, we’re seeking an outstanding Backend Lead to join our team in Vietnam. As […]