GraphQL là gì
Ngôn ngữ truy vấn cho API
GraphQL là ngôn ngữ truy vấn và runtime cho API cho phép client chỉ yêu cầu dữ liệu cần thiết.
Khái niệm cốt lõi
- Schema — mô tả kiểu dữ liệu và thao tác
- Queries — đọc dữ liệu
- Mutations — sửa đổi dữ liệu
- Subscriptions — cập nhật thời gian thực
Ưu điểm so với REST
- Linh hoạt — client định nghĩa cấu trúc phản hồi
- Endpoint duy nhất — thay vì nhiều endpoint REST
- Không over-fetching — chỉ nhận các trường được yêu cầu
- An toàn kiểu — schema nghiêm ngặt với validation
Ví dụ truy vấn
query {
user(id: "1") {
name
email
posts {
title
}
}
}
Khi nào sử dụng
Lý tưởng cho ứng dụng với nhiều loại client (web, mobile), quan hệ dữ liệu phức tạp và yêu cầu hiệu suất.