GraphQL 是一种新的 Web API 查询语言,它的目标是用更少的数据传输完成复杂的数据库查询操作。Deno 是一种新的运行时环境,它专为 JavaScript 和 TypeScript 设计,它解决了 Node.js 中存在的一些问题,例如模块管理、安全性等。
在本文中,我们将讨论如何在 Deno 中使用 GraphQL 构建 API。
安装和配置 Deno
Deno 可以通过以下命令进行安装:
curl -fsSL https://deno.land/x/install/install.sh | sh
安装完成后,我们还需要设置环境变量:
export DENO_INSTALL="/Users/user/.deno" export PATH="$DENO_INSTALL/bin:$PATH"
安装和配置 GraphQL
首先,我们需要安装以下依赖项:
import { Application, Router } from "https://deno.land/x/oak/mod.ts";
import { applyGraphQL } from "https://deno.land/x/oak_graphql/mod.ts";
import { makeExecutableSchema } from "https://cdn.pika.dev/graphql-tools/v6";
import "https://deno.land/x/dotenv/load.ts";这里,我们使用 Oak 框架作为 Web 服务器,使用 oak_graphql 库来支持 GraphQL 查询。我们还使用 graphql-tools 来创建 GraphQL 模式,以及 dotenv 库来管理环境变量。
现在,我们需要配置 GraphQL 以便可以使用它来构建 API:
-- -------------------- ---- -------
----- -------- - -
---- ------ -
--- ----
----- -------
---- ----
-
---- ----- -
------------- ------ ------
-
---- -------- -
--------------- -------- ---- ------ ------
-
--
----- --------- - -
------ -
---------- --------- - -- -- -- -
-- ---------
---
------ -------
-
--
--------- -
---------- --------- - ----- --- -- -- -
-- ---------
---
------ -------
-
--
--
----- ------ - ----------------------
---------
----------
---我们首先定义了我们的 GraphQL 模式,其中包含两个类型:Person 和 Query,以及一个 mutation 类型。Person 类型表示一个人,Query 类型表示从数据库中获取指定 ID 的人,mutation 类型表示往数据库中添加一条人的信息。我们还定义了 resolvers,用于处理相应的逻辑。最后,我们使用 makeExecutableSchema 方法创建了一个 GraphQL 模式。
集成到 Oak
现在我们需要使用 oak-graphql 将 GraphQL 添加到 Oak 应用程序中:
-- -------------------- ---- ------- ----- --- - --- -------------- ----- -------------- - ----- -------------- ----- ----------- --------- ---------- --- -------------------------------- --------------------------------- ------------ ----- ---- ---
首先,我们创建了一个 Oak 应用程序。然后,我们使用 applyGraphQL 方法来创建 GraphQL 服务,并将其路由和方法添加到应用程序中。最后,我们启动服务器。
测试
我们可以使用 GraphiQL 来测试我们的 API。
http://localhost:8080/graphql
在 GraphiQL 中,我们可以通过类似以下的查询获取数据:
query {
getPerson(id: 1) {
id
name
age
}
}我们也可以使用类似以下的 mutation 来添加一条记录:
mutation {
addPerson(name: "Tony", age: 30) {
id
name
age
}
}总结
在本文中,我们介绍了如何使用 Deno 和 GraphQL 构建 API。我们首先安装和配置了 Deno,然后安装和配置了 GraphQL。然后,我们将 GraphQL 集成到 Oak 应用程序中,最后通过 GraphiQL 与 API 进行交互。
GraphQL 提供了一种简洁而强大的途径来构建 API,而 Deno 则可以提供更好的安全性和模块管理。这两者结合起来,可以提供更强大、更可靠的 Web API 服务。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/64ef4bb6f6b2d6eab394d15d