- Tổng đài 24/7: 1800 646 881
- Đăng nhập
- 3
Bạn biết về SQL, bạn biết về các ràng buộc và mối quan hệ trong dữ liệu? Tuy nhiên đã bao giờ bạn nghe và tìm hiểu về GraphQL hay chưa? Đối với các nhà lập trình ứng dụng chắc chắn từng quen thuộc với thuật ngữ này. Hôm nay hãy cùng chúng tôi tìm hiểu về các vấn đề xoay quanh nó và cách mà bạn có thể sử dụng để truy vấn.
Cũng giống như SQL, GraphQL là một ngôn ngữ truy vấn và thời gian chạy phía server cho interfaces của lập trình ứng dụng (API). Nó cung cấp cho người dùng dữ liệu chính xác mà họ yêu cầu. Mục đích của ngôn ngữ này chính là làm cho API nhanh, linh hoạt và thân thiện hơn với nhà phát triển.
Trong môi trường phát triển tích hợp IDE hoàn toàn có thể triển khai ngôn ngữ này (gọi là GraphiQL). Ngoài ra, nó có thể thay thế cho REST. Chỉ với một lệnh API, bạn hoàn toàn xây dựng và lấy dữ liệu dữ liệu từ nhiều nguồn khác nhau.
GraphQL mang tới sự linh hoạt cho nhà bảo trì hệ thống khi có thể thực hiện nhiều tác vụ mà không ảnh hưởng tới truy vấn. Các nhà phát triển được tự do xây dựng API theo phương pháp của mình. Những đặc tả của ngôn ngữ này cũng đảm bảo hệ thống hoạt động theo cách có thể dự đoán được với khách hàng.
Hiện nay, các nhà phát triển sử dụng ngôn ngữ này để tạo một lược đồ mô tả dữ liệu. Nó đặc tả tất cả các dữ liệu mà khách hàng có thể truy vấn thông qua dịch vụ cung cấp.
Cũng giống như SQL, lược đồ GraphQL hình thành từ các đối tượng. Vậy nên bạn cần xác định những đối tượng này bao gồm các trường nào, loại của nó. Việc thực hiện truy vấn cũng xác thực dựa trên lược đồ. Sau khi đã xác thực xong, nó sẽ tiến hành thực thi và trả kết quả.
Nhà phát triển API sẽ đính kèm từng trường hợp trong lược đồ vào một chức năng có tên resolver. Khi quá trình thực thi diễn ra, resolver sẽ được gọi ra để tạo giá trị.
GraphQL sẽ xác định và xác thực cú pháp cho các truy vấn API (trong graphql-spec). Ngoài ra, các quyết định sẽ hoàn toàn do nhà phát triển xây dựng. Nó không cung cấp bất cứ hướng dẫn nào về việc lưu trữ dữ liệu hoặc ngôn ngữ lập trình chỉ định. Vậy nên bạn hoàn toàn có thể sử dụng PHP, Python, JS,…. GraphQL cũng không đưa ra yêu cầu với mạng, authorization hay phân trang.
Đối với máy khách, các thao tác hay thường được dùng với ngôn ngữ này chính là queries (truy vấn) và mutations (thay đổi). Nếu chiếu theo CRUD thì truy vấn – queries tương đương với Read. Trong khi đó mutations sẽ bao gồm các lệnh còn lại (create, update, delete).
Việc sử dụng GraphQL trong các doanh nghiệp có lẽ còn chưa quá phổ biến. Tuy nhiên trong tương lai, đây sẽ là lựa chọn của nhiều nhà phát triển. Bạn có thể cân nhắc từ những ưu – nhược điểm của nó để sử dụng.
Ngoài các ưu điểm, tất nhiên ngôn ngữ này cũng tồn tại nhược điểm. Có thể điểm qua như sau:
Để hiểu thêm về ngôn ngữ này, hãy cùng phân tích các ví dụ dưới đây, cách nó thực hiện và trả kết quả về.
Đầu tiên, hãy thực hiện truy vấn GraphQL yêu cầu API trả về dữ liệu theo các trường chỉ định.
Ví dụ:
{{EJS0}}
API sẽ trả về kết quả như sau ở định dạng JSON:
{{EJS1}}
Máy khách cũng có thể truyền đối số như một phần truy vấn. Ví dụ:
{{EJS2}}
Kết quả trả về sẽ như sau:
{{EJS3}}
Tất nhiên GraphQL cung cấp cho người dùng các đoạn có thể tái sử dụng và gán biến. Ví dụ như khi bạn muốn yêu cầu danh sách mã học sinh và các bản ghi cho mỗi mã. Bạn có thể làm được điều này chỉ với một lệnh truy vấn API:
{{EJS4}}
Và kết quả nhận được sẽ là:
{{EJS5}}
Ứng dụng của GraphQL hiện nay là khá nhiều, bạn có thể thấy từ Apollo, Offix,… đều sử dụng nó. Hy vọng với những thông tin trên bạn đã có thể biết thêm về cách truy vấn trong ngôn ngữ này. Việc dùng nó mang tới nhiều lợi ích cho các nhà phát triển ở hiện tại và tương lai.
Nếu còn gặp bất cứ vướng mắc gì về GraphQL, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.
Thuê Cloud Server tại BKHOST
Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay: