Trong những năm gần đây, Graph API xuất hiện ngày càng nhiều trong các hệ thống lớn như Facebook Graph API, Microsoft Graph API, GitHub GraphQL API,… và dần trở thành một tiêu chuẩn mới cho việc truy xuất dữ liệu.
Vậy Graph API thực chất là gì, nó khác REST API ở đâu, và có rủi ro bảo mật nào cần chú ý?
1️⃣ Graph API – Hiểu đơn giản cho dễ hình dung
Graph API là một kiểu API cho phép client truy vấn dữ liệu theo dạng “đồ thị” (graph), nơi:
- Node: đại diện cho đối tượng (user, post, file, email…)
- Edge: mối quan hệ giữa các đối tượng
- Field: thuộc tính của node
Ví dụ:
- Lấy user
- Kèm theo danh sách bạn bè
- Kèm email, avatar
👉 Gộp trong một truy vấn duy nhất
2️⃣ Graph API khác gì REST API?
Điểm khác biệt lớn nhất giữa Graph API và REST API nằm ở cách truy xuất dữ liệu. Với REST API, mỗi loại tài nguyên thường tương ứng với một endpoint riêng, nên client dễ gặp tình trạng gọi nhiều request, hoặc nhận về dữ liệu thừa không cần thiết. Trong khi đó, Graph API thường chỉ có một endpoint duy nhất, cho phép client chỉ định chính xác dữ liệu cần lấy trong một request. Nhờ vậy, Graph API giúp giảm số lượng request, hạn chế over-fetch và under-fetch, đồng thời linh hoạt hơn cho các ứng dụng frontend và mobile.
💡 Graph API giúp giảm số request, tăng hiệu năng, đặc biệt phù hợp với:
- Mobile app
- SPA / Frontend hiện đại
- Microservices
3️⃣ Một số Graph API phổ biến hiện nay
🔹 Facebook Graph API
- Lấy thông tin user, page, post, comment
- Ràng buộc chặt quyền (permission, access token)
- Outlook, OneDrive, Teams, Azure AD
- Gần như “xương sống” của hệ sinh thái Microsoft 365 🔹 GraphQL API (GitHub, Shopify, etc.)
- Ngôn ngữ query mạnh mẽ
- Cho phép truy vấn dữ liệu phức tạp trong 1 request
4️⃣ Góc nhìn bảo mật: Graph API có nguy hiểm không?
Câu trả lời là: có – nếu cấu hình sai 😈 ⚠️ Các rủi ro bảo mật thường gặp:
🔸 Broken Access Control
- Client query được field không được phép
- Lấy data của user khác
- Backend trả về quá nhiều field nhạy cảm
- Email, token, role, internal ID
- Query lồng nhau sâu → DoS
- Không giới hạn độ sâu (query depth)
- Token hợp lệ nhưng scope quá rộng
- Không kiểm tra quyền trên từng field
5️⃣ Best Practice khi triển khai Graph API
✅ Áp dụng field-level authorization
✅ Giới hạn query depth / complexity
✅ Không expose field nhạy cảm mặc định
✅ Log & monitor query bất thường
✅ Validate chặt chẽ access token & scope
6️⃣ Kết luận
Graph API không chỉ là xu hướng, mà đang dần trở thành chuẩn mới cho các hệ thống hiện đại.
Nó mạnh, linh hoạt, nhưng cũng rất nguy hiểm nếu dev xem nhẹ bảo mật.
👉 Với anh em làm backend, frontend hay cybersecurity, hiểu rõ Graph API là bắt buộc, không phải “nice to have”.