Written on 17th April 2026 by Carter Phan.
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource. Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.
Sau khi chúng ta biết được RESTful API là gì thì trong phần này chúng ta cùng tìm hiểu nguyên lý hoạt động của nó nhé. Giống như các giao thức truyền thông hay cấu trúc dữ liệu khác. Để hiểu được bản chất vấn đề thì trước hết cần phải hiểu nguyên lý hoạt động của nó.
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng.
Vậy những lợi ích nó mang lại là gì ? So với các phương pháp khác nó sẽ có điểm gì vượt trội
Một số ưu điểm chính khi sử dụng RESTFUL API là:
GraphQL là một ngôn ngữ truy vấn API và một runtime để thực thi các truy vấn đó dựa trên dữ liệu hiện có của bạn. Nó được phát triển bởi Facebook vào năm 2012 và trở thành mã nguồn mở vào năm 2015. GraphQL cho phép client yêu cầu chính xác những gì họ cần và không có gì hơn, giúp tối ưu hóa việc lấy dữ liệu và giảm thiểu lượng dữ liệu không cần thiết.
GraphQL bao gồm 3 điểm đặc trưng bao gồm:
GraphQL sử dụng một hệ thống kiểu mạnh mẽ để mô tả dữ liệu của bạn. Khi một client gửi một truy vấn đến server GraphQL, server sẽ kiểm tra và xác thực truy vấn đó dựa trên schema đã được định nghĩa trước. Sau đó, server sẽ thực thi truy vấn và trả về dữ liệu dưới dạng JSON.
| Tiêu chí | RESTful API | GraphQL |
| Endpoint | Nhiều endpoint cho các tài nguyên khác nhau | Chỉ một endpoint duy nhất |
| Dữ liệu trả về | Có thể trả về dư thừa dữ liệu hoặc thiếu dữ liệu | Client yêu cầu chính xác những gì họ cần |
| Kiểu Dữ liệu | Không kiểm tra kiểu dữ liệu trước khi trả về | Kiểm tra kiểu dữ liệu trước khi trả về |
| Độ Linh Hoạt | Khó khăn trong việc thay đổi hoặc mở rộng API | Dễ dàng mở rộng và thay đổi schema |
| Hiệu Suất | Có thể gặp vấn đề hiệu suất với nhiều endpoint | Tối ưu hóa hiệu suất với truy vấn chính xác |
| Cơ Chế Lấy Dữ Liệu | Lấy dữ liệu từ nhiều endpoint | Lấy dữ liệu từ một endpoint duy nhất |
{
"id":1,
"name":"...",
"email":"...",
"address":"..."
}
👉 client chỉ cần name
user → orders → items
👉 Query explosion
👉 Phù hợp khi:
👉 Phù hợp khi: