10+ tools và extensions tuyệt vời cho GraphQL APIs

2814

Với sự quan tâm ngày càng lớn dành cho GraphQL, một hệ sinh thái mới sôi động của phần mềm hỗ trợ đã nhanh chóng nổi lên. Cộng đồng mã nguồn mở, startups cũng xác nhận các trường hợp sử dụng GraphQL mới, hạn chế những khó khăn khi phát triển GraphQL, cho phép nhiều nhà phát triển áp dụng GraphQL ươn và giảm chi phí cùng với các công cụ tuyệt vời.

Đây là một tin tuyệt vời với các ngôn ngữ truy vấn, vì Lee Byron, một designer của GraphQL tại Facebook, gần đây đã lưu ý rằng để GraphQL phát triển phổ biến, các hệ sinh thái rất cần bổ sung thêm các công cụ:

Cho dù các công cụ xử lý phân tích hiệu suất của các dịch vụ đồ hoạ, đã được xây dựng trước tại GraphQL server, hoặc cung cấp IDEs để khám phá  GraphQL schemas, vẫn còn rất nhiều việc cần làm để cải thiện khả năng sử dụng và áp dụng GraphQL.

Trong bài viết này, chúng tôi sẽ giới thiệu một loạt các công cụ để khám phá các mối quan hệ của GraphQL, tài liệu về GraphQL API, tối ưu hoá và theo dõi GraphQL API, chuyển từ REST API thành GraphQL, hoặc nếu bạn đang có một kế hoạch khác, bạn có thể muốn coi qua các extensions dưới đây để bổ sung chp API stack của mình.

GraphiQL

Một IDE trong trình duyệt giúp khám pháp GraphQL APIs

Nhưng chúng ta đã thảo luận trước, nhiều GraphQL APIs sử dụng giao diện điều khiển mã nguồn mở này interactive API playground. GraphiQL là một môi trường phát triển tích hợp (IDE) để tương tác với các API GraphQL calls, cho phép các dev truy vấn dữ liệu và thực hiện mutations.

IDE này tương đối dễ thực hiện; cho các máy chủ Node.js, express-GraphQL có thể tự động tạo ra GraphiQL. Vì nó được xây dựng dựa trên React, GraphiQL cũng có thể được nối với CSS cho việc xây dựng tùy chỉnh.

Cột GraphiQL bên trái để nhập truy vấn với sytax editor để tìm kiếm lược đồ có liên quan bằng cách sử dụng tính năng autocomplete. Khi yêu cầu được chạy, phản hồi sẽ được hiển thị ở cột bên phải.

Sự trợ giúp trực quan dưới dạng sandbox API, playground, hoặc các phương tiện tương tác khác là một khía cạnh quan trọng để hỗ trợ API nhằm đáp ứng nhu cầu của các dev.

GraphQL Voyager

Thể hiện GraphQL API dưới dạng biểu đồ tương tác

Nếu bạn hi vọng nhìn thấy mối tương quan giữa các dữ liệu, hãy chạy nó thông qua GraphQL Voyager, nó sẽ cho bạn một trải nghiệm rất ngầu. Voyager lấy một GraphQL API và biến nó thành graph trực quan. Sau khi thiết lập một lược đồ gốc, bạn có thể xem trực quan các field được kết nối như thế nào. Voyager lựa chọn một loại làm nổi bật các field bao gồm, và liên kết đến dữ liệu có liên quan trong đồ thị.

The Star War API (SWAPI) được biểu diễn trực quan bằng GraphQL Voyager

Như Lee Byron, Ivan Goncharov founder của APIs.guru đã nói với Nordic API:

“Tạo ra một công cụ tiên tiến có thể làm việc bất kì GraphQL API nào có thể là một trong những điều quan trọng mà REST API bị thiếu”

GraphQL Voyager cung cấp một cột bên trái mô tả thông tin của fields và một giao diện trực quan cung cấp điều hướng nhanh. Người sử dụng cũng có thể đơn giản hóa các đồ thị bằng cách loại bỏ các lớp wrapper Relay. Ngoài việc thể hiện các hình ảnh mềm mại, Voyager có thể giúp các công ty hình dung mô hình dữ liệu của họ, tạo ra các cuộc hội thoại trên các quan hệ dữ liệu,… Cuối cùng, chúng ta có thể xem “graph” phía sau GraphQL.

Graph CMS

Xây dựng một GraphQL Content API trong vài phút

GraphCMS là một hệ thống quản lý nội dung (CMS) API mà gắn liền với GraphQL. Nó cho phép bạn lưu trữ một hosted GraphQL hỗ trợ cho các ứng dụng web, cung cấp công cụ để quản lý nội dung. Người dùng xác định cấu trúc dữ liệu, xác nhận chúng trong bảng điều khiển, và có thể xem trình bày ở giao diện người dùng, tất cả đều nằm trong cùng một nền tảng.

Mặc dù GraphCMS không phù hợp với nền tảng API hiện tại nhưng nó thích hợp cho blog, ứng dụng web, hoặc các cấu trúc nội dung khác đòi hỏi khả năng chia sẻ dữ liệu theo chương trình. Một CMS dựa trên GraphQL sẽ là một thay thế thú vị cho các CMS truyền thồng như WordPress hoặc Drupal, sẽ cho phép một framework quản lý trong tương lai được trang bị API và nó có thể quản lý linh hoạt hơn cho giao diện người dùng cuối.

GraphQL Docs

Tài liệu ngắn gọn dễ hiểu cho GraphQL API

Cần một tài liệu tĩnh cho giản đồ GraphQL API? Còn lựa chọn nào tốt hơn GraphQL Docs. Trang web sẽ tạo ra các tài liệu chức năng đơn giản trong 10 giây, cho GraphQL điểm đích là URL. Người dùng có thể chọn công khai danh mục tài liệu API của họ, hoặc giữ nó ở chế độ  riêng tư.

Một mã nguồn mở tương đương cho tài liệu tĩnh là graphdoc-fork, nó tự tạo và lưu trữ các tài liệu GraphQL. Đối với cả hai, kết quả trả về la2 một giao diện ngắn gọn, menu tìm kiếm, và liên kết với các lược đồ định nghĩa đối tượng, và nhiều hơn nữa.

GraphQL Faker

Làm giả hoặc mở rộng API GraphQL với dữ liệu fake

Nếu bạn đang làm giả một gốc API, tại sao không thêm một số dữ liệu lorem ipsum để kiểm tra mọi thứ? Với GraphQL Faker, các nhà phát triển API GraphQL có thể chèn dữ liệu thực tế để bắt chước kết quả thực. Nó được hỗ trợ với fake.js, cho phép nhà phát triển mô phỏng trên 60 loại dữ liệu thực tế, như địa chỉ – đường phố, tên và họ, avatar và nhiều hơn thế. Tất cả những gì bạn cần là viết một IDL GraphQL, GraphQL Faker cung cấp một số ví dụ để bắt đầu soạn thảo IDL. Nó rất đơn giản:

type Person {
  name: String @fake(type: firstName)
  gender: String @examples(values: ["male", "female"])
}

Swagger GraphQL

Chuyển từ REST sang GraphQL trong 5 phút

Đối với các nhà cung cấp API cố thủ với mô hình truyền thống REST, họ sẽ không quan tâm việc dùng thử GraphQL. Mô hình này chỉ cần đưa Swagger lược đồ, và nó sẽ tự động chuyển sang GraphQL.

GraphQL IDE

Một IDE rộng lớn để khám phá GraphQL API

Môi trường phát triển tích hợp, hoặc IDE thường là một trình soạn thảo mã nguồn tối đa hoá năng suất của nhà phát triển với những tính năng như debug, hoàn thành code, compiling và giải thích. GraphQL IDE là một thay thế cho GraphiQL, nhưng sự khác biệt là “phổ biến”. Nó cung cấp thêm các tính năng quản lý dự án, tiêu đề tùy chỉnh và năng động, khả năng nhập / xuất, khả năng lưu trữ các truy vấn và xem lịch sử truy vấn.

GraphQL Network

Chrome Devtool cung cấp một “network” kiểu tab để cho phép nhà phát triển debug dễ dàng hơn

Nhiều kỹ thuật viên của chúng tôi là một người dùng mạnh mẽ của Google Chrome, do đó một tab trình duyệt về GraphQL là một điều cần thiết và nghiêm túc. Được gọi là GraphQL Network, tab hữu ích này tương tư như việc xem request network trong Chrome DevTool – đây là một công cụ tuyệt vời để gỡ lỗi các cuộc gọi API RESTful, nhưng ngắn khi làm việc với GraphQL, vì thường “/graphql” được hiển thị dưới dạng điểm cuối.

Tab này hiển thị một danh sách ngắn các yêu cầu GraphQL gần đây, liệt kê tên phương thức HTTP, trạng thái và loại request. Ngoài ra, GraphQL Network cũng cung cấp một cái nhìn thô của chuỗi GraphQL được gửi, cũng như xem một tính toán đang được giải trên máy chủ. Có các mục nhập riêng biệt được đặt ra cũng như có thể xem các đoạn mã có thể đọc được, có thể hữu ích để theo dõi và debug các truy vấn GraphQL.

Graphcool

Back-end hỗ trợ linh hoạt kết hợp GraphQL + AWS Lambda

Với kiến trúc linh hoạt, khả năng mở rộng, không cần máy chủ, có một back-end được hình thành trước là một triển vọng thú vị, đặc biệt là khi nó tương tác với GraphQL out-of-the-box. Graphcool là một nền tảng để hỗ trợ thiết kế lược đồ GraphQL và phát triển back-end ứng dụng, đi kèm với một bảng điều khiển trực quan để thiết kế và chỉnh sửa giản đồ dữ liệu của bạn, với khả năng tạo ra mô hình dữ liệu GraphQL tiên tiến, field tùy chỉnh và quan hệ giữa dữ liệu. tích hợp với công nghệ phổ biến như AWS Lambda, Algolia, và Auth0, Graphcool có vẻ là một công cụ mạnh mẽ để quản lý cơ sở dữ liệu hiện đại.

Optics by Apollo

Nhìn một vòng quanh danh sách các công cụ dành cho GraphQL, cuối cùng nhưng không kém phần quan trọng là Optics, một sản phẩm để theo dõi GraphQL APIs. Optics là một giải pháp phân tích cho các API GraphQL để theo dõi các truy vấn chạy như thế nào, giúp bạn biết những loại truy vấn đang được thực hiện và tần suất của chúng. Như chúng ta đã thảo luận trước đây, chỉ số API rất quan trọng và bất kỳ API web nào cũng có thể có lợi từ việc thêm giải pháp phân tích vào nền tảng của họ.

Xem khối lượng yêu cầu được hiển thị trực quan cũng như nắm bắt tốt hơn về các điểm nghẽn như các vấn đề về độ trễ là cần thiết để tối ưu hóa hiệu suất và cải thiện thời gian tải trang.

Optics được phát triển bởi Apollo, những người đóng góp lớn vào hệ sinh thái của GraphQL – Apollo Client là một ứng dụng GraphQL chuẩn bị cho ứng dụng React và native app, và Apollo cũng tổ chức các sự kiện để truyền bá kiến ​​thức GraphQL.

Lời kết

Các công cụ quan trọng khác bao gồm Thunder, một máy chủ GraphQL cho Go, Join Monster, một gói NPM để phân xử các vấn đề giữa cơ sở dữ liệu GraphQL và SQL, hoặc Dgraph, một cơ sở dữ liệu nhanh làm việc với GraphQL.

“Những công cụ tuyệt vời sẽ làm cho GraphQL trở nên phổ biến”
– Lee Byron, GraphQL / Facebook

Có rất nhiều thứ dường như đang nổi lên hàng ngày, và hy vọng với sự ra đời của các công cụ như những cái được đề cập trong bài viết này, nhiều nhà cung cấp có thể gặt hái được những lợi ích của GraphQL và tăng khả năng mở rộng nói chung và tốn ít nỗ lực.

Nguồn: nordicapis.com