GraphQL 是一种查询语言,用于 API 的设计和查询。在 Web 开发中,GraphQL 已经成为了一个受欢迎的 API 解决方案。而 Deno 则是一个新兴的 JavaScript 运行时,通常用于构建服务端应用程序。本文将详细介绍在 Deno 中使用 GraphQL 构建 API 的实例解析。
安装 Deno 和 GraphQL 模块
在开始之前,需要先安装 Deno 和 GraphQL 模块,可以在 Deno 官方网站上下载并安装 Deno,然后使用以下命令来安装 GraphQL 模块:
deno install --allow-net --allow-read https://deno.land/x/graphql/cli.ts
创建一个 GraphQL Schema
一个 GraphQL Schema 可以理解为 API 的结构说明,可以用来定义 API 能够提供的操作和数据类型。在 Deno 中,可以使用 TypeScript 来定义 Schema。
-- -------------------- ---- ------- ------ - -------------- ------------------ ------------- - ---- ---------------------------------- ----- --------- - --- ------------------- ----- -------- ------- - ------ - ----- -------------- ----- - ----- - ----- ------------- -- -- -------- --- - ---- -- -- ------- ------ -- ----------- -- -- --- ----- ------ - --- --------------- ------ --------- --- ------ ------- -------
上面的代码中,我们导入了 GraphQL 相关的模块,然后定义了一个 Query 类型,该类型可以返回一个字符串,也可以接受一个 name 参数,最后将 Query 类型传递给 GraphQLSchema 构造函数来创建一个 GraphQL Schema。
构建一个 Deno 服务器
接下来,我们需要将我们的 Schema 应用到 Deno 服务器中。在 Deno 中,我们可以使用 HTTP 模块构建服务器。
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - ------------ - ---- --------------------------------------- ------ ------ ---- -------------- ----- ---- - ----- ----- --- - ------- ----- ---- --- ------------------- ------- -- --------------------------- --- ----- ------ --- -- ---- - ----- - --------- ------ - - --- ------------ ---------------------------- -- --------- --- ----------- - ----- ------ - ----- -------------- ------- ------ ------- ---------- --- -------------- --- --- ------------- ----- ---------------------- --- - ---- -- --------- --- ---- - ------------- ----- ------- ------ --- - ---- - ------------- ----- ---- ------ --- - -
上面的代码中,我们首先导入了 HTTP 模块和 deno-graphql 模块,同时我们也导入了之前定义的 Schema,然后创建了一个服务器,并且在服务器上监听了两个路径,“/graphql” 和 “/”,其中,如果路径为 “/graphql” 则使用 deno-graphql 库中的 applyGraphQL 函数来处理 Graphql 查询,如果路径为 “/” 则返回一个简单的字符串。
在浏览器中测试 GraphQL API
我们可以使用浏览器来测试我们的 GraphQL API。在浏览器中输入以下地址:“http://localhost:8000/graphql?query={hello}”,可以看到以下结果:
{ "data": { "hello": "Hello, World!" } }
这是一个 GraphQL 查询,我们通过浏览器的 URL 参数来传递查询。以上的查询表示从根查询中获取 hello 字段的值。同时我们也在查询中传递了一个 name 参数。
总结
到此为止,我们已经成功地在 Deno 中使用 GraphQL 构建了一个 API。在以上实例中,我们使用了 GraphQL 作为 API 的查询语言,并且使用了 Deno 作为运行环境。这些技术的结合,既可以满足现代 Web 应用程序的需求,也可以作为学习 GraphQL 和 Deno 的绝佳材料。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/653ab7727d4982a6eb4ec3c0