REST (Representational State Transfer)

Không phải giao thức mà là một PHONG CÁCH kiến trúc thiết kế API dựa trên HTTP, lấy tài nguyên (resource) làm trung tâm. Mỗi tài nguyên có một URL, thao tác qua các HTTP method chuẩn.

Ví dụ

GET    /tasks       → danh sách task
POST   /tasks       → tạo task mới (body JSON)
GET    /tasks/123   → chi tiết task 123
PUT    /tasks/123   → cập nhật toàn bộ (PATCH: một phần)
DELETE /tasks/123   → xóa (trả 204 No Content)

Dùng nhất quán verb HTTP cho các loại thao tác giống nhau → API dễ hiểu, dự đoán được. Phản hồi thường là JSON. Tận dụng tối đa tính stateless của HTTP.

Ưu / Nhược

Ưu điểmNhược điểm
Đơn giản, rõ ràng, chuẩn chungChậm hơn & tốn băng thông hơn giải pháp binary (RPC/gRPC)
Stateless → mở rộng tốt, không lo đồng bộ sessionKhông ép chặt cấu trúc response → dễ thiếu nhất quán
Tận dụng hạ tầng HTTP (cache, token, status code)Stateless đôi khi buộc client gửi lặp thông tin (token mỗi request)
Tương thích rộng (mọi ngôn ngữ gọi được HTTP)

Khi nào dùng

Hầu hết dịch vụ web công khai, API cho đối tác, client đa dạng (browser, mobile, bên thứ ba) → REST là lựa chọn an toàn nhờ interoperability cao. Ngay cả khi nội bộ dùng gRPC, vẫn có thể có một lớp API Gateway RESTful bên ngoài.

Liên quan

  • HTTP - nền tảng của REST
  • RPC - lựa chọn hiệu năng cao cho nội bộ
  • Idempotency - GET/PUT/DELETE idempotent