icantech
Kiến thức công nghệ
1379
09/10/2023

REST API là gì? Tất tần tận những điều bạn cần biết về REST API

Rest API hay có tên gọi khác là RESTful viết tắt của representational state transfer tức là chuyển giao trạng thái đại diện được phát minh bởi nhà khoa học máy tính Roy Fielding. Trong bài viết dưới đây, hãy cùng ICANTECH tìm hiểu về Rest API nhé!

1. Tổng quan Rest Api

REST API hay có tên gọi khác là RESTful viết tắt của representational state transfer tức là chuyển giao trạng thái đại diện được phát minh bởi nhà khoa học máy tính Roy Fielding 

2. Như thế nào là một REST API?

Trước khi hiểu về REST API, ta sẽ tìm hiểu từng định nghĩa API là gì?  REST là gì?

2.1. API là gì?

API là giao thức được thiết kế nhằm mục đích xây dựng, tích hợp vào phần mềm và ứng dụng. API thiết lập nội dung yêu cầu từ người tiêu dùng tới nhà sản xuất và sau đó phản hồi lại người tiêu dùng. Bạn có thể coi API như một trung gian giữa người dùng hoặc khách hàng và các tài nguyên hoặc dịch vụ web. 

api-la-gi

2.2. REST là gì?

Khi yêu cầu của khách hàng được thực hiện thông qua RESTful API, nó sẽ chuyển thông tin thể hiện đến người yêu cầu hoặc địa điểm yêu cầu. Thông tin được gửi theo một trong nhiều định dạng qua HTTP: JSON (Javascript Object Notation), HTML, XLT, Python, PHP hoặc văn bản thuần túy. 

REST-la-gi

Để hiểu rõ hơn về REST, trước tiên chúng ta cần xem qua một vài thuật ngữ chính:

  • Client là người hoặc chương trình sử dụng API đưa ra yêu cầu tới API để truy xuất một số thông tin hoặc thay đổi nội dung nào đó trong ứng dụng. Trình duyệt web của chúng ta được coi là một Client - nó tương tác với các API của các trang web khác  để lấy nội dung của trang web từ chúng. Thông tin được request sẽ được gửi trở lại trình duyệt của chúng ta và sau đó hiển thị trên màn hình trình duyệt.
  • Resource là tài nguyên của bất kỳ thông tin nào mà API có thể cung cấp cho Client. Ví dụ: Resource trong API của Facebook có thể là thông tin người dùng, ảnh hoặc bài đăng. Mỗi tài nguyên có một unique name, được gọi là resource identifier.
  • Server máy chủ được sử dụng bởi ứng dụng và nhận các Client requests và trong request có chứa các Resource mà Client muốn nhận. Server có API để tương tác với Client, mà không cấp cho Client quyền truy cập trực tiếp vào nội dung đang lưu trữ trong Database.

3. Để một API được coi là RESTful, cần phải tuân thủ sáu quy tắc sau

Để có một API đầy đủ từ chức năng mà REST cung cấp, API phải tuân theo 6 yêu cầu (5 yêu cầu và 1 yêu cầu tùy chọn.). Mỗi ​​yêu cầu đặt nền tảng cho một API hoạt động nhanh và linh hoạt.

3.1. Client-Server Separation - Tách biệt giữa máy khách và máy chủ 

Trong kiến ​​trúc REST, Client và Server chỉ có thể tương tác theo một cách: Client gửi đến Server các request, sau đó Server  sẽ gửi phản hồi lại cho Client. Server không có chức năng đưa ra yêu cầu và Client không có chức năng phản hồi yêu cầu đó. 

RESTful API giữ cho cả hai hoạt động độc lập để Client có thể phát triển các phần mềm - ứng dụng mà không lo ảnh hưởng đến Server

3.2. Uniform interface - Sử dụng cùng một kiểu giao diện

Nguyên tắc này nêu rõ rằng tất cả các request và tất cả response đều phải tuân theo một giao thức hoặc cách định dạng tin nhắn của chung. Các ứng dụng và máy chủ được viết bằng nhiều loại ngôn ngữ khác nhau nên sẽ không thể làm việc tốt cùng nhau mà không có trung gian. Vì vậy bạn cần sử dụng Uniform interface để tất cả Client có thể giao tiếp với bất kỳ REST API nào.

Nếu giao tiếp giữa client và server không được tiêu chuẩn hóa, các request và response giữa các phần mềm sẽ trở nên hỗn độn khiến thông tin bị lộn xộn hoặc mất hay ứng dụng phải cập nhật quy trình theo API thì Uniform interface sẽ giải quyết vấn đề trên.

Đối với hầu hết các REST API, giao thức sử dụng chủ yếu là  HTTP (Giao thức truyền tin siêu văn bản "Hypertext Transfer Protocol). REST sử dụng giao thức HTTP làm tiêu chuẩn giao tiếp cho các ứng dụng.

Để sử dụng HTTP với REST API, ứng dụng phía Client sẽ phải gửi request ở định dạng cụ thể lên phía Server. 

Ví dụ: Gửi yêu cầu tới YouTube API để lấy dữ liệu video trông như thế này: "GEThttps://www.googleapis.com/youtube/v3/channels?part=contentDetails" 

Giống như tất cả các yêu cầu đối với REST API, yêu cầu này chứa hai phần thông tin:

GET là giao thức của HTTP chỉ định hành động mà Client muốn thực hiện trên tài nguyên phía Server. Có 4 yêu cầu HTTP cơ bản:

  • GET: Để truy xuất tài nguyên từ phía Server
  • POST: Để yêu cầu từ phía Server tạo tài nguyên mới
  • PUT: Để yêu cầu từ phía Server chỉnh sửa hoặc cập nhật tài nguyên hiện có.
  • DELETE: Để xóa tài nguyên từ phía Server

3.3. Stateless - Không lưu lại thông tin

Stateless là trạng thái của Server và Client. Trạng thái của cả hai sẽ không được lưu lẫn nhau. Hiểu đơn giản hơn Stateless được thiết kế để Server sẽ không lưu lại các yêu cầu của phía Client. Mọi tương tác đều độc lập và mỗi request, response đều phải đóng gói các thông tin cần thiết để hoàn thành tương tác ở phía server. Mọi yêu cầu của Client đều được Server hiểu là một yêu cầu hoàn toàn mới - Server sẽ không lưu các yêu cầu trong quá khứ từ phía  Client. Stateless sẽ giúp giảm dung lượng bộ nhớ máy chủ và cải thiện khả năng phản hồi bởi vì Server không cần phải thực hiện các hành động truy xuất dữ liệu cũ.

3.4. Layered System  - Hệ thống phân chia lớp

Nguyên tắc này yêu cầu các thông tin giữa Client và Server mục tiêu phải luôn được định dạng và xử lý theo cùng một cách, bất kể có Layers nào nằm giữa chúng. Layers bổ sung sẽ không ảnh hưởng đến vấn đề tương tác giữa Client và Server.

3.5. Cacheable - Lưu vào bộ nhớ đệm

Bộ nhớ đệm giúp tiết kiệm nguồn tài nguyên Server và băng thông đồng thời giảm thời gian tải trang, đó là lý do tại sao hầu hết các trang web lớn đều áp dụng cách thức này.

Các REST API khi được tạo thường có lưu ý khi lưu dữ liệu vào bộ nhớ đệm. Khi Server gửi phản hồi của nó đến Client,  phản hồi sẽ cho biết liệu tài nguyên được cung cấp có thể được lưu vào bộ đệm hay không và trong bao lâu.

3.6. Code-on-demand (optional) - Mã theo yêu cầu

Là khả năng gửi mã thực thi từ Server đến Client khi được yêu cầu, mở rộng chức năng của Client.

4. Tại sao chúng ta cần phải sử dụng REST APIs?

REST framework được nhà khoa học máy tính Roy Fielding giới thiệu vào năm 2000 và ngày nay nó đã được nang cấp thành cách chúng ta xem, sửa đổi và truyền tải nội dung trực tuyến. Nhiều công ty website và thuật toán đám mây phổ biến sử dụng REST API để phục vụ cho ứng dụng của họ, bao gồm Facebook, YouTube, Twitter và Google bởi vì REST mang lại cho người dùng: 

Sự linh hoạt và tiện dụng: xử lý nhiều loại yêu cầu và gửi dữ liệu ở các định dạng khác nhau.

Khả năng mở rộng. Khi có một ứng dụng website phát triển và được bổ sung thêm nhiều tài nguyên, REST API sẽ có thể xử lý nhanh chóng với số lượng request ngày càng tăng và đa dạng.

Kết hợp đa dạng: REST API được tích hợp các công nghệ web hiện có.  Vì vậy để yêu cầu tài nguyên thông qua REST API, chúng ta chỉ cần cung cấp URL của tài nguyên đó.

5. Lời Kết

Qua bài viết này, chúng ta đã tìm hiểu cách hoạt động của một REST API. Điều quan trọng là phải áp dụng các quy tắc và thực hành vào thực tế để chúng ta có thể xây dựng các ứng dụng có chức năng tốt, hoạt động tốt, an toàn cho người sử dụng.

Nếu bạn đang học lập trình thì hãy đồng hành ngay cùng ICANTECH với các khóa học lập trình dưới đây nhé !

Nguồn ảnh: ICANTECH.

Share
Tags
Kiến thức công nghệ

Bài tương tự