Coin

GraphQL là gì và lợi ích của nó là gì?

GraphQL là ngôn ngữ truy vấn của Facebook. Nó được sử dụng bởi các ứng dụng xử lý dữ liệu tùy chỉnh khác nhau.

Các chức năng cơ bản của thuật toán là cập nhật dữ liệu, đọc, tạo và xóa chúng. Do các tính năng kỹ thuật của ngôn ngữ, người dùng chỉ nhận được thông tin cần thiết cụ thể theo yêu cầu của họ và công ty không xử lý dữ liệu không cần thiết và do đó giảm chi phí.

Các thuộc tính và tính năng của ngôn ngữ GraphQL

GraphQL là một ngôn ngữ truy vấn mã nguồn mở. Thuật toán kỹ thuật này được phát triển bởi các lập trình viên của Facebook. Theo kế hoạch ban đầu, nó sẽ trở thành một giải pháp thay thế cho REST và sẽ được sử dụng để phát triển giao diện của các ứng dụng khác nhau.

Về mặt sơ đồ, hoạt động của thuật toán trông như thế này:

Thông thường, bạn có một số điểm cuối cần được kết hợp với nhau để đến cuối tuyến đường. Nhưng điều này là quá dài và khó khăn.

Nhưng nhờ ngôn ngữ GraphQL, bạn chỉ có một điểm cuối cho tất cả các tuyến. Do đó, bạn có thể chỉ cần kết hợp tất cả dữ liệu để đến thời điểm này nhanh hơn nhiều.

GraphQL có một số lợi ích quan trọng:

  • bạn sẽ có thể nhận được thông tin cụ thể về khối lượng mà bạn đã hình thành yêu cầu (tức là, so với REST, phản hồi sẽ không chứa dữ liệu không cần thiết – thông tin “nhiễu”);
  • chỉ cần một dấu chấm cho một truy vấn – không cần phiên bản bổ sung;
  • ngôn ngữ được chuẩn hóa nhờ đó có thể đánh giá tính đúng đắn của yêu cầu ở giai đoạn sơ bộ có nghĩa là bạn có thể tạo các API mạnh hơn so với REST;
  • để phát triển các mạch, họ sử dụng ngôn ngữ kỹ thuật SDL của riêng họ, ngôn ngữ này có cú pháp phổ quát và khá dễ hiểu;
  • các truy vấn có thể được kết hợp, một lần nữa thuận tiện cho người dùng.

Ưu điểm quan trọng nhất của GraphQL theo quan điểm của người dùng là thiếu thông tin không cần thiết. Một mặt, không có nhiều điều đó. Nhưng nếu bạn hình dung lượng truy cập Facebook khổng lồ thì với khối lượng như vậy, lượng thông tin không cần thiết trở nên quá lớn.

Điều này gây bất tiện cho khách hàng và bất lợi cho chính công ty, công ty phải phục vụ vài triệu yêu cầu mỗi giây. Nói một cách đơn giản – ở quy mô như vậy ngay cả những điều nhỏ nhặt dường như chỉ là một vấn đề không đáng kể cũng đóng một vai trò quan trọng.

Đồng thời, GraphQL không được định vị là đối lập hoàn toàn với REST. Cả hai ngôn ngữ đều có một số đặc điểm chung:

  1. Một giao diện duy nhất để xử lý dữ liệu từ xa.
  2. Trong hầu hết các trường hợp, phản hồi cho một yêu cầu có định dạng JSON.
  3. Cả hai ngôn ngữ đều cung cấp khả năng phân tách các yêu cầu đọc và ghi, thuận tiện cho việc xử lý dữ liệu.

Cách hoạt động của GraphQL

GraphQL được sử dụng để xử lý nhiều yêu cầu, cuối cùng tổng hợp thành 2 loại:

  1. Đầu tiên, một yêu cầu được thực hiện để đọc thông tin (trong GraphQL đây là truy vấn). Chúng tương ứng với chữ R.
  2. Thứ hai – khả năng thay đổi dữ liệu được yêu cầu (đột biến – nghĩa là đột biến). Tương ứng với các chữ cái U, C và D.

Bất kỳ yêu cầu nào cũng nhằm lấy một số thông tin nhất định được lưu trữ trên máy chủ. Ngôn ngữ GraphQL giả định một cú pháp mới để xây dựng một truy vấn.

Đáng chú ý, đối tượng này không phải là JavaScript hay JSON. Tất cả các truy vấn bắt đầu bằng một cơ sở – “truy vấn gốc” và kết quả mà bạn định nhận là một trường. Trong ví dụ dưới đây, truy vấn gốc được lập công thức bằng tiếng Nga và kết quả là trường “hương vị”.

Để xây dựng phản hồi chính xác khi yêu cầu một trường cũng cần phải xác định các trường lồng nhau ngay cả khi kết quả là chỉ có một đối tượng xuất hiện. Các trường này được liệt kê trong ngoặc đơn.

Kết quả là, bạn có thể nhận được ví dụ, câu trả lời sau:

Không có thêm dữ liệu trong đó – đây là nơi mà lợi thế của ngôn ngữ GraphQL so với REST có thể nhìn thấy rõ ràng.

Loại hệ thống

Các thuật toán cho dịch vụ GraphQL được viết bằng các ngôn ngữ khác nhau. Do đó, một lược đồ ngôn ngữ phổ quát đã được phát triển để hỗ trợ một số kiểu dữ liệu.

Đối tượng

Nó là một kiểu cơ bản bao gồm một đối tượng và một số trường chứa mô tả của nó.

Vô hướng

Nhưng kết quả là chúng được chuyển thành một loại vô hướng cụ thể,ví dụ, Float hoặc ID. Ngoài các kiểu vô hướng cơ bản, bạn có thể tạo các kiểu khác trong các dịch vụ GraphQL khác nhau. Bạn cũng có thể thêm một công cụ sửa đổi vào thuật toán mà việc xác thực trường phụ thuộc vào đó. Nó được biểu thị bằng dấu chấm than – ví dụ như sau:

Ngoài ra còn có các bổ ngữ khác – ví dụ: Danh sách. Nó được biểu thị bằng dấu ngoặc vuông.

 

Để tham khảo

Các công cụ sửa đổi khác nhau được áp dụng riêng lẻ và kết hợp ở bất kỳ cấp độ lồng nào.

Tranh luận

Nó là một tập hợp các cặp khóa / giá trị cho một trường cụ thể. Dữ liệu được gửi đến máy chủ và xác định cách thu thập thông tin cho trường này hoặc trường đó. Các biến và các chữ được sử dụng làm đối số. Chúng được sử dụng trong các trường thuộc bất kỳ cấp độ lồng nào. Và mỗi người trong số họ phải được đặt tên.

Bảng kê

Một loại kiểu vô hướng không chấp nhận bất kỳ giá trị nào mà chỉ chấp nhận những giá trị được chỉ định bởi một tập hợp cụ thể.

Giao diện

Loại trừu tượng này bao gồm một số trường bắt buộc. Hơn nữa, chúng phải chứa các kiểu kế thừa giao diện – nếu không sẽ xảy ra lỗi xác thực.

Có một kiểu trừu tượng khác không có trường bắt buộc. Nó được sử dụng khi bạn cần sử dụng một gia đình với các loại không có các lĩnh vực chung. Ví dụ, chức năng này được sử dụng cho các đăng ký phức tạp.

Truy vấn

Một loại đặc biệt khác là yêu cầu cung cấp thông tin. Nó là bắt buộc đối với tất cả các API GraphQL. Ví dụ: đây là cách yêu cầu lấy dữ liệu cho tất cả các phim trông như thế này:

Đăng ký

Trong số tất cả các loại, cái này xuất hiện muộn hơn những cái khác. Nó gửi dữ liệu đến một người dùng “lắng nghe” nó trực tuyến. Trong trường hợp này, phản hồi từ máy chủ không đến ngay lập tức mà chỉ sau khi nhận được một số tín hiệu nhất định. Trên thực tế, đây là những thông báo đẩy hoạt động cùng với các đột biến và truy vấn.

Đột biến

Các truy vấn cơ bản dẫn đến một phản hồi cụ thể. Ngược lại, các đột biến là cần thiết để tạo ra các thay đổi, điều này cũng được quan sát thấy khá thường xuyên. Chúng được sử dụng làm thuật toán RPC chính. Một cú pháp hơi khác được sử dụng để thuật toán các đột biến. Nhưng nói chung, nó tương tự như cái được sử dụng để hình thành các truy vấn, như được hiển thị ở trên .

Tên, id và mô tả của biến được sử dụng ở đây để mô tả đột biến. Đột biến gốc được viết bằng cách sử dụng từ đột biến theo sau là tên của đột biến này (tên) và một tập hợp các biến.

Điều quan trọng là phải hiểu rằng các biến này bao gồm chính xác các tham số mà người dùng đang cố gắng thay đổi. Trong ví dụ được mô tả, bạn cần thay đổi tên, id và mô tả và trong các trường hợp khác đây có thể là các yêu cầu khác nhau.

Cách GraphQL được sử dụng cho Ethereum

GraphQL được xây dựng xung quanh mã định danh đồ thị con. Biểu đồ con là một thuật toán xác định dữ liệu nào sẽ lấy từ chuỗi khối. Hơn nữa, trong hầu hết các trường hợp chúng rất thú vị:

  • hợp đồng giao ngay;
  • cách người dùng có thể yêu cầu dữ liệu này.

Sơ đồ dưới đây cho thấy 4 đồ thị con mặc dù trên thực tế có thể có hàng trăm hoặc hàng nghìn đồ thị trong số đó: mỗi người dùng thêm đồ thị con của riêng mình.

Để sử dụng một đồ thị con, nó phải được thay thế bằng phần mềm gọi là nút đồ thị. Người dùng có thể khởi chạy nút này và đồ thị con của riêng mình một cách độc lập. Và trong trường hợp này, bạn có trách nhiệm duy trì sức khỏe của nút trên mạng.

Do đó, trong tương lai GraphQL sẽ trở thành một mạng lưới phi tập trung rộng lớn và bất kỳ ai cũng có thể trở thành thành viên của nó. Nhưng ở giai đoạn này, bạn chỉ cần sử dụng API được cung cấp bởi biểu đồ.

Quan trọng!

Mỗi người tham gia có thể sử dụng bài viết con của bạn. Bạn cũng có thể chuyển nó cho ban quản lý của công ty đứng sau giao thức đồ thị giúp bạn tiết kiệm thời gian của chính mình.

Cách tạo yêu cầu đầu tiên của bạn

Cách tốt nhất để bắt đầu làm việc với lịch trình là truy cập vào một nền tảng trực tuyến. Trong trường hợp này, bạn không cần cài đặt bất kỳ phần mềm nào – tất cả các thao tác đều được thực hiện trực tuyến trên trang web. Hướng dẫn khá đơn giản:

  1. Chuyển đến phần Explorer.
  2. Tìm phần “Uniswap V2”.
  3. Một sân chơi GraphQL sẽ xuất hiện trước mặt bạn ở phía bên trái của nó có một văn bản với một yêu cầu.
  4. Nếu bạn nhấp vào nút lilac bạn có thể thấy kết quả của truy vấn.
  5. Ở phía bên phải có một sơ đồ với các yêu cầu khác nhau. Bạn có thể sử dụng một trong số chúng và tạo yêu cầu của riêng bạn. Ví dụ, nhấp vào đối tượng “Ghép nối”.
  6. Kết quả là một danh sách với các trường sẽ xuất hiện: ở bên trái (màu trắng) là tên của trường và ở bên phải (màu hoa cà) – loại trường. Một số trường sử dụng các kiểu cơ bản như “id” hoặc “BigDecimal”. Đối với những người khác những thứ không chuẩn chẳng hạn như “Token”.
  7. Trong trường bên trái, bạn phải chỉ định tên của đối tượng (trong trường hợp này là “Ghép nối”) và viết trong dấu ngoặc nhọn trường nào sẽ được sử dụng – ví dụ: token1 và token2.
  8. Nhập dữ liệu cơ bản như trong hình.
  9. Bây giờ, nếu bạn nhấp lại vào nút lilac để chạy truy vấn bạn có thể thấy kết quả.

Yêu cầu sau đó sẽ xuất hiện trong sổ đăng ký Uniswap V2.

Nếu bạn nhấp vào nó, bạn có thể thấy một tệp mô tả cách xây dựng biểu đồ con này.

Vì vậy, GraphQL là một hình thức lại của ngôn ngữ REST. Không ngoa, nó có thể được gọi là tiếng kêu mới nhất của CNTT: chỉ trong tháng 6 năm 2020 người dùng đã thực hiện hơn 1 tỷ yêu cầu. Do đó, có những cơ hội tốt để phát triển nghề nghiệp và kiếm thu nhập cho các lập trình viên và những người tham gia khác.

Bạn cũng có thể thích

Để lại một trả lời

Địa chỉ email của bạn sẽ không được công bố.