GraphQL là một cú pháp mô tả cách yêu cầu lấy dữ liệu, và thường được dùng để load data từ một server cho client.
GraphQL bao gồm 3 điểm đặc trưng là cho phép client xác định chính xác những gì dữ liệu họ cần, làm cho việc tổng hợp dữ liệu từ nhiều nguồn dễ dàng hơn và nó sử dụng một type system để mơ tả dữ liệu.
Ưu điểm:
- GraphQL schema tự động tạo ra một nguồn đáng tin cậy trong ứng dụng GraphQL.
- Chỉ với một request, client có thể có được nhiều thơng tin họ cần làm giảm thiểu số lượng requests.
16 - Hỗ trợ tối đa trong việc kiểm soát và xử lý data type từ đó hạn chế sự sai lệch
trong giao tiếp giữa server và client.
- GraphQL giúp ứng dụng của bạn có thể phát triển thêm API mà khơng làm ảnh hưởng lên các truy vấn đã có.
- GraphQL không yêu cầu một kiến trúc ứng dụng cụ thể mà có thể hoạt động như một Rest API và có thể làm việc với các cơng cụ API hiện có.
- Tài liệu để học về GraphQL có sẵn và rất chi tiết, dễ dàng học, tiếp thu. Bạn có thể học tập tương tự nếu đã từng học về Rest API.
Nhược điểm:
- Cần phải học cách thiết lập GraphQL, do đây là một hệ sinh thái đang phát triển nhanh chóng nên ta cần phải nắm bắt theo kịp.
- Gửi truy vấn từ máy khách nên cần phải sử dụng thư viện máy khách.
- Cần có endpoint GraphQL trên máy chủ chứ khơng giả Api được như restful. - Các truy vấn Graphql chứa nhiều byte dữ liệu hơn.
- Máy chủ cần xử lý nhiều hơn để phân tích cú pháp truy vấn và xác minh các tham số
2.7. Redis