Chọn dựa trên ai tiêu thụ API và nhu cầu dữ liệu của họ đa dạng đến đâu — không phải theo trào lưu. GraphQL thắng khi nhiều client đa dạng cần tự định hình dữ liệu; REST thắng khi request đồng nhất, cache được, và đơn giản.
Chọn dựa trên ai tiêu thụ API và nhu cầu dữ liệu của họ đa dạng đến đâu — không phải theo trào lưu. GraphQL thắng khi nhiều client đa dạng cần tự định hình dữ liệu; REST thắng khi request đồng nhất, cache được, và đơn giản.
user -> posts -> comments) thay vì N vòng gọi REST.GET của REST cache dễ dàng ở mọi tầng; GraphQL cần persisted query mới tiệm cận được.| Mối quan tâm | GraphQL | REST |
|---|---|---|
| Over/under-fetching | Giải quyết từ thiết kế | Vấn đề thường gặp |
| Cache HTTP/CDN | Khó (phải làm thêm) | Sẵn có và dễ |
| Kiểm soát cost-query/DoS | Bạn phải tự thêm | Tự nhiên có giới hạn |
| Linh hoạt cho client | Cao | Thấp |
| Độ phức tạp server | Cao hơn | Thấp hơn |
Chúng cũng không loại trừ nhau — nhiều hệ thống phơi bày REST cho các endpoint công khai/cache-được và GraphQL cho các client nội bộ giàu dữ liệu.
Người phỏng vấn cấp senior đang kiểm tra khả năng phán đoán, không phải lòng trung thành. Câu trả lời mạnh nêu được các trục — độ đa dạng client, nhu cầu cache, độ chín của team, bề mặt DoS — và thừa nhận các chi phí thật của GraphQL (caching và kiểm soát cost query) thay vì bán nó như thứ tốt hơn trong mọi trường hợp.
Thư viện câu hỏi phỏng vấn IT với đáp án chi tiết — từ Junior đến Senior.
Ủng hộ