介绍
Deno 是一个现代化的 JavaScript 和 TypeScript 运行时环境,它是由 Node.js 的创始人 Ryan Dahl 所开发。Deno 特点在于其安全性、可维护性和可扩展性。GraphQL 是一种用于构建 API 的查询语言,它提供了一个更加高效、强大和易用的方式来获取数据。本文将介绍如何在 Deno 中使用 GraphQL。
步骤
安装依赖
在使用 GraphQL 前,需要先安装一些依赖。首先安装 graphql
和 dataloader
。打开终端,运行以下命令:
deno install --unstable --allow-read --allow-net https://deno.land/x/deno_graphql/mod.ts
建立 GraphQL Schema
建立 GraphQL Schema 是创建一个 GraphQL API 的第一步。以下是一个基本的例子:
-- -------------------- ---- ------- ------ - ------------------ -------------- -------------- - ---- ------------ ----- -------- - --- ------------------- ----- ------- ------- -- -- -- --- - ----- ------------- -- ----- - ----- ------------- -- ------ - ----- ------------- -- --- --- ----- --------- - --- ------------------- ----- ---------------- ------- - ----- - ----- --------- ----- - --- - ----- ------------- - -- --------------- ----- - -- -- ------- ------ -- -- -- --- ------ ------- --- --------------- ------ ---------- ---
这个例子定义了一个 UserType
和一个 RootQuery
,并最终通过 new GraphQLSchema
返回一个可供使用的 GraphQL Schema。
处理 GraphQL 请求
要处理 GraphQL 请求,我们需要创建一个服务器,当收到 GraphQL 请求时,用我们建立的 GraphQL Schema 处理数据并返回结果。以下是一个基本的例子:
-- -------------------- ---- ------- ------ - -- ---- ---- ------- ------ - ---------------- ---------------------- ---------- - ---- ---------------------------------- ------ - ------------ - ---- ---------------------------------- ------ - -------------------- --------------------- - ---- ------------ ------ ------ ---- -------------- ----- -------- ------------------------------- ---------- - --- - --- ----- ------ ----- -- ---------- - -- ------- ----- --- --------- - --- - ----- ------- - --------------------------------------- ----- ------ - ----- ----------------------------- --------- --------------------------------------- - ----- ------- ---- - ----- ------------ - ----- ---------- ------------ - -------------- - - ------ --------- ------ ------ -- --------------- ---------------- --- ----- -------- - ------- -------------- - --- -- - - ---- -- ------------------------------ - ------ - - - ----- ------- - --------------------- -- ------- ------ ----------- -- --------------------- - ----- ------------------------------------------- - - - ----- ------ - -------------------- ------------------- ----- -- -- - ------------------- ------- -- ---- ------- --- ----- ------ --- -- ------- - ----- - ----- -- ---------- -- ---------- ------- - - ---- ----------------- ----- ---------- ---------- -------- -- --------------------------- ------------ ----- -- - --------------------- -- ------ ---------- --------- ----- ------------- ------- --- ------------------------ --- - ---
这个例子使用了 http
和 ws
模块来创建 WebSocket 服务器,当接收到 WebSocket 请求时,讲请求数据传入我们建立的 GraphQL Schema 中,并将结果发送回客户端。
执行 GraphQL 查询
在我们的客户端中,我们可以使用任何支持 WebSocket 的 GraphQL 客户端来与我们的服务器进行通信,例如 Apollo Client。以下是一个基本的例子:
-- -------------------- ---- ------- ------ - ---- ------------- - ---- ----------------------------------------- ----- ---- - --- --------------- ---- ----------------------------- --- ----- ------ - --- -------------- ----- --- ----- ----- - ---- ----- - -------- ---- - ---- ----- - - -- -------------- ----- ---------------- -- ---------------------
在这个例子中,我们创建了 WebSocketLink
并将其传入 Apollo Client 中。然后我们创建了一个查询,查询名称为 user
,参数为 id
。当我们使用 client.query
发送查询给我们的服务器时,我们将看到服务器将数据返回给客户端。
结论
本教程介绍了如何在 Deno 中使用 GraphQL。我们学习了如何建立 GraphQL Schema 和如何通过 WebSocket 处理 GraphQL 请求,以及如何在客户端中使用 Apollo Client 执行 GraphQL 查询。希望这篇文章对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67513bdb8bd460d3ad8796e9