0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

Kiến Thức Cần Biết Về RESTful API: Hướng Dẫn Cơ Bản Dành Cho Lập Trình Viên Backend (Phần 1)

Đăng vào 2 tuần trước

• 5 phút đọc

Chủ đề:

APIRESTful APIREST

I. Cơ Bản Về REST và RESTful API

1. REST Là Gì?

REST (Representational State Transfer) là một kiến trúc phần mềm cho phép các hệ thống giao tiếp với nhau một cách hiệu quả. Kiến trúc này dựa trên các nguyên tắc đơn giản, bao gồm việc sử dụng HTTP và URL để xác định các tài nguyên (resources) và các phương thức HTTP (như GET, POST, PUT, DELETE) để thao tác trên các tài nguyên này.

Nguyên Tắc Cốt Lõi Của REST

  • Stateless (Không Trạng Thái): Mỗi yêu cầu từ client đến server phải chứa tất cả thông tin cần thiết để server xử lý mà không cần lưu tồn trạng thái client giữa các yêu cầu. Điều này giúp giảm tải cho server và tăng tính khả dụng.
  • Kiến Trúc Client-Server: Tách biệt giữa client và server. Client chịu trách nhiệm cho giao diện và tương tác với người dùng, trong khi server xử lý logic và dữ liệu. Điều này cho phép phát triển và bảo trì dễ dàng hơn.
  • Cacheable (Có Thể Lưu Cache): Phản hồi từ server có thể được lưu vào bộ nhớ cache, giúp cải thiện hiệu suất và giảm tải cho server. Client có thể lưu các phản hồi và tái sử dụng mà không cần gửi yêu cầu mới.
  • Giao Diện Thống Nhất (Uniform Interface): REST định nghĩa một giao diện thống nhất cho việc tương tác với các tài nguyên, bao gồm việc sử dụng các phương thức HTTP tiêu chuẩn.
  • Hệ Thống Nhiều Lớp (Layered System): Kiến trúc REST có thể cấu trúc thành nhiều lớp, giúp tổ chức các thành phần của hệ thống mà client không cần biết liệu nó đang tương tác với server cuối hay server trung gian.

2. Các Phương Thức HTTP Chính

  • GET: Truy xuất tài nguyên từ server.
  • POST: Tạo mới một tài nguyên trên server.
  • PUT: Cập nhật hoàn toàn một tài nguyên có sẵn trên server.
  • DELETE: Xóa tài nguyên từ server.

3. RESTful API Là Gì?

RESTful API là một loại API được thiết kế theo các nguyên tắc của kiến trúc REST. Nó sử dụng giao thức HTTP để truyền tải dữ liệu giữa client và server.

Đặc Điểm Của RESTful API

  • Dễ Sử Dụng: Các phương thức HTTP tiêu chuẩn và cấu trúc URL dễ hiểu giúp RESTful API dễ dàng cho các nhà phát triển sử dụng.
  • Khả Năng Mở Rộng: API không lưu trạng thái, cho phép client tương tác với server một cách độc lập.
  • Hỗ Trợ Nhiều Định Dạng Dữ Liệu: RESTful API hỗ trợ JSON, XML, HTML,... nhưng JSON là định dạng phổ biến nhất do tính nhẹ và dễ xử lý.

4. Stateless Trong REST

Stateless có nghĩa là mỗi yêu cầu từ client đến server phải chứa đủ thông tin để server hiểu và xử lý mà không dựa vào trạng thái trước đó. Điều này làm cho RESTful API dễ mở rộng hơn và an toàn hơn.

Ví dụ, khi client gửi yêu cầu để lấy thông tin tài khoản người dùng từ server, yêu cầu phải包含 token xác thực trong headers. Server sẽ đọc token trong mỗi yêu cầu mà không cần biết bất kỳ thông tin nào về trạng thái của client từ các yêu cầu trước đó.

5. Phân Biệt Giữa URI và URL

URI (Uniform Resource Identifier) là chuỗi ký tự xác định tài nguyên trên mạng. URI bao gồm hai loại chính là URL (Uniform Resource Locator) và URN (Uniform Resource Name).

  • URL là một loại URI, xác định không chỉ vị trí mà còn cách truy cập tài nguyên.
  • Sự Khác Biệt Giữa URI và URL: Tất cả các URL đều là URI, nhưng không phải tất cả URI đều là URL. URI là khái niệm bao quát hơn trong khi URL cung cấp thông tin về cách truy cập tài nguyên.

6. Tài Nguyên (Resource) Trong REST

Resource (tài nguyên) là một thực thể trong hệ thống có thể được truy cập qua API, với mỗi resource có một URI duy nhất.

II. Nguyên Tắc Và Thực Hành

1. Tiêu Chuẩn Thiết Kế RESTful API

  • Sử Dụng URI Có Nghĩa: Các URI nên dễ hiểu và phản ánh rõ ràng tài nguyên mà chúng đại diện.
  • Sử Dụng Phương Thức HTTP Đúng Chức Năng: Tuân thủ các phương thức này giúp tăng tính nhất quán và dễ hiểu.
  • Hỗ Trợ Các Định Dạng Dữ Liệu Như JSON, XML.
  • Hỗ Trợ Versioning: Giúp duy trì tính ổn định của API khi có sự thay đổi.
  • Áp Dụng HATEOAS: Cung cấp liên kết hypermedia trong phản hồi.
  • Xử Lý Lỗi Thống Nhất: Cung cấp mã trạng thái HTTP thích hợp cho các phản hồi với thông điệp lỗi rõ ràng.
  • Bảo Mật: Sử dụng các biện pháp bảo mật như authentication và authorization để bảo vệ tài nguyên API.

2. Mã Trạng Thái HTTP Phổ Biến

  • 200 OK: Yêu cầu đã thành công.
  • 201 Created: Tài nguyên đã được tạo thành công.
  • 204 No Content: Không có dữ liệu trả về.
  • 400 Bad Request: Yêu cầu không hợp lệ.
  • 401 Unauthorized: Không có quyền truy cập.
  • 403 Forbidden: Truy cập bị từ chối.
  • 404 Not Found: Không tìm thấy tài nguyên.
  • 500 Internal Server Error: Lỗi từ phía server.

3. Versioning

Versioning giúp duy trì tính ổn định của API, đảm bảo rằng các client cũ vẫn hoạt động với phiên bản mới.

4. Pagination Và Filtering

Pagination giới hạn số lượng dữ liệu trả về, giảm tải server. Ví dụ: /users?page=2&limit=10.

5. Idempotent Trong API

Idempotent có nghĩa rằng nhiều lần thực thi phương thức vẫn cho kết quả như nhau, ví dụ như GET và PUT.

6. CORS (Cross-Origin Resource Sharing)

CORS cho phép chia sẻ tài nguyên từ một miền khác, và server phải bật CORS để cho phép client truy cập.

Kết Luận

Kiến thức về RESTful API không chỉ bổ sung mà còn là phần thiết yếu trong kỹ năng của mỗi lập trình viên Backend. Hiểu và nắm vững các nguyên tắc thiết kế RESTful API giúp developer xây dựng các ứng dụng linh hoạt, dễ bảo trì và mở rộng. Hãy cùng đón chờ phần tiếp theo, nơi chúng ta sẽ khám phá nhiều chủ đề nâng cao hơn!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào