1. REST API là gì?

REST API là một cách thiết kế API giúp các ứng dụng giao tiếp và trao đổi dữ liệu với nhau thông qua Internet.

REST là viết tắt của Representational State Transfer, còn API là Application Programming Interface.

Hiểu đơn giản, REST API đóng vai trò như một cầu nối giữa Client và Server. Client gửi yêu cầu đến Server, Server xử lý yêu cầu rồi trả dữ liệu về cho Client.

REST API thường sử dụng HTTP hoặc HTTPS để truyền dữ liệu.
RESTful API: The Principles and Constraints | by Arianna Campesi | Medium

2. REST API hoạt động như thế nào?

Khi một ứng dụng muốn lấy hoặc thay đổi dữ liệu, Client sẽ gửi một HTTP Request đến một Endpoint của REST API.

Server nhận Request, xử lý dữ liệu và trả về HTTP Response.

Ví dụ một ứng dụng muốn lấy danh sách người dùng:

GET /users

Server nhận yêu cầu và trả về dữ liệu người dùng.

Ví dụ Response:

[
  {
    "id": 1,
    "name": "Nguyen Van A"
  }
]

Như vậy, Client không cần truy cập trực tiếp vào Database mà thông qua REST API để lấy dữ liệu.

Tìm Hiểu RESTful API và Các Tiêu Chuẩn Viết API Hiệu Quả

3. REST API sử dụng HTTP Method

REST API thường kết hợp với các HTTP Method để xác định Client muốn thực hiện hành động gì.

Một số Method phổ biến:

  • GET: lấy dữ liệu.
  • POST: tạo dữ liệu mới.
  • PUT: cập nhật toàn bộ dữ liệu.
  • PATCH: cập nhật một phần dữ liệu.
  • DELETE: xóa dữ liệu.

Ví dụ:

GET /users là Lấy danh sách người dùng.

GET /users/1 là Lấy thông tin người dùng có ID là 1.

POST /users là Tạo một người dùng mới.

PUT /users/1 là Cập nhật thông tin người dùng có ID là 1.

DELETE /users/1 là Xóa người dùng có ID là 1.

4. Endpoint là gì?

Endpoint là địa chỉ mà Client sử dụng để gửi Request đến REST API nhằm truy cập một tài nguyên hoặc thực hiện một chức năng nào đó.

Ví dụ:

GET /users

Trong đó:

  • GET là HTTP Method.
  • /users là Endpoint.
  • users đại diện cho tài nguyên người dùng.

Một API có thể có nhiều Endpoint khác nhau.

5. REST API trả dữ liệu như thế nào?

REST API thường trả dữ liệu dưới dạng JSON (JavaScript Object Notation) vì JSON có cấu trúc đơn giản và dễ sử dụng giữa các hệ thống khác nhau.

Ví dụ:

{
  "id": 1,
  "name": "Nguyen Van A",
  "email": "[email protected]"
}

Client nhận dữ liệu JSON từ Server rồi sử dụng dữ liệu đó để hiển thị lên giao diện hoặc tiếp tục xử lý.

Ví dụ trong ứng dụng mobile, App có thể gọi REST API để lấy danh sách sản phẩm. API lấy dữ liệu từ Database rồi trả JSON về App để hiển thị danh sách sản phẩm.

6. REST API và Database

REST API thường nằm ở giữa Client và Database.

Luồng xử lý có thể hiểu như sau:

1 Client  2 REST 3 API  4 Server  5 Database

Ví dụ người dùng mở danh sách sản phẩm:

  1. Client gửi GET /products.
  2. REST API nhận Request.
  3. Server xử lý yêu cầu.
  4. Server truy vấn Database.
  5. Database trả dữ liệu về Server.
  6. Server trả Response thông qua REST API.
  7. Client nhận dữ liệu và hiển thị sản phẩm.

Nhờ cách này, Client không cần biết Database được lưu trữ như thế nào và cũng không truy cập trực tiếp vào Database.

7. Ưu điểm và các khái niệm cần nhớ

REST API được sử dụng rất phổ biến vì cách thiết kế tương đối đơn giản, dễ mở rộng và có thể được sử dụng bởi nhiều loại Client khác nhau như Web, Mobile App, Desktop App hoặc hệ thống khác.

Một đặc điểm quan trọng của REST API là Stateless, nghĩa là mỗi Request nên chứa đầy đủ thông tin cần thiết để Server xử lý. Server không cần phụ thuộc vào trạng thái của Request trước đó.

REST API cũng thường kết hợp với Authentication và Authorization để kiểm soát người dùng. Ví dụ có thể sử dụng Token, JWT hoặc API Key để xác thực Request.

Dễ nhớ:

REST API = Cách để Client giao tiếp với Server thông qua HTTP/HTTPS.

GET = lấy

POST = tạo

PUT/PATCH = cập nhật

DELETE = xóa

Các thuật ngữ liên quan cần nhớ: REST, API, Client, Server, Endpoint, HTTP Method, Request, Response, JSON, Resource, Stateless, Authentication, Authorization, Token, JWT.

Bài viết khác

Tìm hiểu về ngôn ngữ lập trình Dart

  Dart là gì? Dart là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Google, được sử dụng để xây dựng các ứng dụng có thể chạy trên nhiều nền tảng khác nhau. Hiện nay, Dart được biết đến nhiều nhất vì đây là ngôn ngữ lập trình chính được sử […]

Tìm hiểu về Design Pattern

Design Pattern là gì? Design Pattern, hay còn gọi là mẫu thiết kế, là những giải pháp mang tính tổng quát được sử dụng để giải quyết những vấn đề thường gặp trong quá trình thiết kế và xây dựng phần mềm. Design Pattern không phải là một đoạn code có sẵn để mình copy […]

SOLID là gì?

1. Cơ bản về SOLID SOLID là 5 nguyên tắc giúp mình viết code dễ hiểu, dễ sửa, dễ mở rộng và ít gây lỗi khi thay đổi. SOLID thường được sử dụng trong lập trình hướng đối tượng. Có thể hiểu đơn giản là thay vì viết một đoạn code làm quá nhiều việc hoặc […]

Dart Fundamentals

Dart Fundamentals là các kiến thức nền tảng của ngôn ngữ lập trình Dart, bao gồm cú pháp, kiểu dữ liệu, biến, hàm, luồng điều khiển, cách làm việc với collection, null safety và các khái niệm OOP cơ bản. Những cái thường thuộc Dart Fundamentals: Biến và kiểu dữ liệu: cách khai báo biến, […]

Tìm hiểu về SOLID trong lập trình

SOLID là gì? SOLID là tập hợp gồm 5 nguyên tắc trong thiết kế phần mềm hướng đối tượng, được sử dụng để giúp mã nguồn có cấu trúc tốt hơn, dễ đọc, dễ bảo trì, dễ kiểm thử và dễ mở rộng. SOLID không phải là một ngôn ngữ lập trình, framework hay thư […]

Scrum và các khái niệm liên quan

1. Khái niệm về Scrum Scrum là một Agile Framework được sử dụng để quản lý và phát triển các sản phẩm phức tạp, đặc biệt phổ biến trong lĩnh vực Software Development. Scrum giúp đội nhóm chia một dự án lớn thành những phần công việc nhỏ và phát triển sản phẩm thông qua […]

Leave a Reply

Your email address will not be published. Required fields are marked *