Hướng dẫn cơ bản GraphQL

Giới thiệu GraphQL

GraphQL là gì?

GraphQL là một tiêu chuẩn API mới cung cấp sự thay thế linh hoạt, mạnh mẽ và linh hoạt hơn cho REST.

Nó được phát triển và có nguồn mở bởi Facebook và hiện được duy trì bởi một cộng đồng lớn gồm các công ty và cá nhân từ khắp nơi trên thế giới.

API đã trở thành một thành phần phổ biến của cơ sở hạ tầng phần mềm. Nói tóm lại, API định nghĩa cách client có thể tải dữ liệu từ server.

Về cốt lõi, GraphQL cho phép khai báo dữ liệu nơi khách hàng có thể chỉ định chính xác dữ liệu nào họ cần từ API.

Thay vì phải có nhiều đầu cuối để trả về các cấu trúc dữ liệu cố định, máy chủ GraphQL chỉ hiển thị một đầu cuối duy nhất và trả về chính xác dữ liệu mà khách hàng yêu cầu.

GraphQL - Ngôn ngữ truy vấn cho API

Hầu hết các ứng dụng ngày nay có nhu cầu lấy dữ liệu từ máy chủ nơi dữ liệu đó được lưu trữ trong cơ sở dữ liệu. API có trách nhiệm cung cấp giao diện cho dữ liệu được lưu trữ phù hợp với nhu cầu của ứng dụng.

GraphQL thường bị nhầm lẫn với việc là một công nghệ cơ sở dữ liệu. Đây là một quan niệm sai lầm, GraphQL là ngôn ngữ truy vấn cho API - không phải cơ sở dữ liệu. GraphQL có thể được sử dụng một cách hiệu quả trong bất kỳ bối cảnh nào sử dụng API.

Một sự thay thế hiệu quả hơn cho REST

Tìm hiểu thêm về những lý do hàng đầu để sử dụng GraphQL trong bài viết "5 lý do hàng đầu để sử dụng GraphQL" ở đây.

5 lý do hàng đầu để sử dụng GraphQL | Comdy
GraphQL đang trở thành tiêu chuẩn mới để phát triển API - tìm hiểu 5 lý do hàng đầu để sử dụng GraphQL.

REST là một cách phổ biến để truy xuất dữ liệu từ máy chủ. Khi khái niệm REST được phát triển, các ứng dụng khách tương đối đơn giản và tốc độ phát triển không giống như ngày nay. REST do đó rất phù hợp cho nhiều ứng dụng.

Tuy nhiên, bối cảnh API đã thay đổi hoàn toàn trong vài năm qua. Cụ thể, có ba yếu tố đã thách thức cách thiết kế API:

1. Việc sử dụng điện thoại di động tăng lên tạo ra nhu cầu tải dữ liệu hiệu quả

Việc sử dụng điện thoại di động ngày càng tăng, các thiết bị có cấu hình thấp và mạng chập chờn là những lý do ban đầu khiến Facebook phát triển GraphQL.

GraphQL giảm thiểu lượng dữ liệu cần truyền qua mạng và do đó giúp cải thiện hiệu năng của các ứng dụng hoạt động trong các điều kiện này.

2. Sự đa dạng của các framework và nền tảng frontend khác nhau

Sự không đồng nhất của các framework và nền tảng (platform) chạy ứng dụng khách gây khó khăn cho việc xây dựng và duy trì một API phù hợp với yêu cầu của tất cả. Với GraphQL, mỗi client có thể truy cập chính xác dữ liệu cần thiết.

3. Phát triển nhanh và kỳ vọng phát triển tính năng nhanh

Việc triển khai liên tục đã trở thành một tiêu chuẩn cho nhiều công ty, việc lặp lại nhanh chóng và cập nhật sản phẩm thường xuyên là không thể thiếu.

Với REST API, cách thức hiển thị dữ liệu của máy chủ thường cần được sửa đổi để tính đến các yêu cầu cụ thể và thay đổi thiết kế ở phía máy khách. Điều này cản trở thực tiễn phát triển nhanh và lặp lại sản phẩm.

Lịch sử của GraphQL

GraphQL không chỉ dành cho Nhà phát triển React

Facebook bắt đầu sử dụng GraphQL vào năm 2012 trong các ứng dụng di động gốc của họ. Điều thú vị là, GraphQL hầu hết đã được chọn để sử dụng trong bối cảnh công nghệ web và chỉ thu được ít lực kéo trong không gian di động gốc.

Lần đầu tiên Facebook công khai nói về GraphQL là tại hội nghị React.js Conf 2015 và ngay sau khi công bố kế hoạch mở mã nguồn của nó.

Do Facebook luôn nói về GraphQL với React, nên phải mất một thời gian để các nhà phát triển không phải React hiểu rằng GraphQL hoàn toàn không phải là một công nghệ bị giới hạn sử dụng với React.

Cộng đồng phát triển nhanh chóng

Trên thực tế, GraphQL là một công nghệ có thể được sử dụng ở mọi nơi mà khách hàng giao tiếp với API.

Thật thú vị, các công ty khác như Netflix hoặc Coursera đang nghiên cứu các ý tưởng để làm cho các tương tác API hiệu quả hơn.

Coursera đã hình dung ra một công nghệ tương tự để cho phép khách hàng chỉ định các yêu cầu dữ liệu của mình và Netflix thậm chí đã mở nguồn giải pháp của họ được gọi là Falcor.

Sau khi GraphQL có nguồn mở, Coursera đã hủy bỏ hoàn toàn những nỗ lực của chính họ và chuyển sang sử dụng GraphQL.

Ngày nay, GraphQL được sử dụng trên môi trường production bởi rất nhiều công ty khác nhau như GitHub, Twitter, Yelp và Shopify, v.v.

Cộng đồng sử dụng và phát triển GraphQL

Ở hướng dẫn tiếp theo sẽ so sánh GraphQL với REST API:

GraphQL tốt hơn REST | Comdy
Những lợi ích tuyệt vời của GraphQL giúp nó trở thành lựa chọn số một để thay thế cho REST API.
GraphQL
Bài Viết Liên Quan:
GraphQL + NodeJS: Giới thiệu
Trung Nguyen 16/05/2020
GraphQL + NodeJS: Giới thiệu

Giới thiệu hướng dẫn xây dựng API sử dụng GraphQL và NodeJS. Các mục tiêu của hướng dẫn và mã nguồn.

Các kiến trúc sử dụng GraphQL
Trung Nguyen 15/05/2020
Các kiến trúc sử dụng GraphQL

Hướng dẫn này sẽ trình bày qua 3 loại kiến ​​trúc khác nhau sử dụng máy chủ GraphQL.

Các khái niệm cốt lõi của GraphQL
Trung Nguyen 15/05/2020
Các khái niệm cốt lõi của GraphQL

Tìm hiểu về Query, Mutation, Subscription và cách sử dụng chúng để tạo lược đồ trong GraphQL.

GraphQL tốt hơn REST
Trung Nguyen 15/05/2020
GraphQL tốt hơn REST

Những lợi ích tuyệt vời của GraphQL giúp nó trở thành lựa chọn số một để thay thế cho REST API.