Backend nền tảng
F3 · REST, GraphQL và gRPC
REST: theo resource, JSON qua HTTP/1.1, query cố định, dễ cache.
F3 · Middle
REST: thực đơn cố định. GraphQL: tự chọn món trong một lần gọi. gRPC: bếp trong nội bộ nói chuyện bằng mật mã nhanh.
Cốt lõi
- REST: theo resource, JSON qua HTTP/1.1, query cố định, dễ cache.
- GraphQL: 1 endpoint, client chọn trường cần lấy → tránh over/under-fetching.
- gRPC: nhị phân (protobuf) qua HTTP/2, độ trễ thấp, hỗ trợ streaming.
Đánh đổi
REST → API công khai, CRUD. GraphQL → mobile app, query linh hoạt. gRPC → microservices nội bộ.
Trong thực tế
Netflix dùng GraphQL cho mobile; gRPC trong microservices nội bộ.
Bug thường gặp
GraphQL cho phép query lồng sâu không giới hạn → một request làm DB quá tải (cần giới hạn độ sâu/độ phức tạp).
Tự hỏi lại
Vì sao GraphQL khó cache hơn REST?