REST (Chuyển giao trạng thái đại diện) là một phong cách kiến trúc để thiết kế các hệ thống phân tán.
REST
REST (Chuyển giao trạng thái đại diện) là một phong cách kiến trúc để thiết kế các hệ thống phân tán. Nó cung cấp một tập hợp các hướng dẫn để cấu trúc giao tiếp giữa các thành phần, thường là qua một mạng. REST nhấn mạnh vào một phương pháp không trạng thái, tập trung vào tài nguyên, nơi các thao tác được thực hiện trên các tài nguyên có thể được xác định duy nhất, được đại diện dưới dạng URL, sử dụng một tập hợp tiêu chuẩn các phương thức HTTP.
Cũng được biết đến như: kiến trúc RESTful, nguyên tắc thiết kế REST.
So sánh
-
REST vs. Kiến trúc Máy khách - Máy chủ: REST xây dựng dựa trên kiến trúc máy khách - máy chủ nhưng thêm các ràng buộc cụ thể như không trạng thái và giao diện đồng nhất.
-
REST vs. CRUD: Trong khi REST gần gũi với các thao tác CRUD (Tạo, Đọc, Cập nhật, Xóa), nó bao gồm các hướng dẫn bổ sung cho các tương tác mở rộng và không trạng thái.
Ưu điểm
-
Giao diện đồng nhất: Đảm bảo các tiêu chuẩn giao tiếp nhất quán.
-
Thiết kế không trạng thái: Đơn giản hóa việc xử lý phía máy chủ bằng cách giữ cho các tương tác độc lập.
-
Khả năng lưu cache: Cải thiện hiệu suất thông qua các cơ chế caching HTTP.
Nhược điểm
-
Thiếu quản lý trạng thái nội bộ: Không trạng thái có nghĩa là REST không tự động xử lý phiên làm việc.
-
Lấy dữ liệu quá mức hoặc không đủ mức: Có thể xảy ra nếu các API không được thiết kế hiệu quả.
Ví dụ
Hãy tưởng tượng một hệ thống dựa trên REST cho một thư viện trực tuyến:
-
Một tài nguyên sách có thể được đại diện bởi URL: http://example.com/books/1
-
Để cập nhật tài nguyên (ví dụ: thay đổi tiêu đề của sách), khách hàng sẽ gửi yêu cầu HTTP PUT:
Yêu cầu:
PUT /books/1 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"title": "Tiêu đề đã cập nhật"
}
Phản hồi:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"title": "Tiêu đề đã cập nhật",
"author": "Tác giả gốc"
}
