如何在 Deno 中使用 GraphQL 进行 API 开发?

阅读时长 7 分钟读完

GraphQL 是一种新兴的 API 查询语言,它可以让前端开发人员更加灵活地请求数据。Deno 是一个新兴的 JavaScript 运行时环境,它提供了一种新的方式来开发服务器端应用程序。在本文中,我们将介绍如何在 Deno 中使用 GraphQL 进行 API 开发。

安装 Deno

首先,我们需要在本地安装 Deno 运行时环境。可以通过以下命令在 macOS 或 Linux 上安装 Deno:

或者在 Windows 上使用 PowerShell:

安装完成后,可以通过运行以下命令来验证 Deno 是否已正确安装:

安装依赖

在开始编写代码之前,我们需要安装两个依赖项:dmmfdeno-graphql. dmmf 是 Prisma 生成的数据模型元数据,deno-graphql 是 Deno 中使用的 GraphQL 库。

创建数据模型

我们将使用 Prisma 来创建数据模型。在本例中,我们将使用一个简单的数据模型,其中包含一个 User 类型,该类型具有 idname 字段。

-- -------------------- ---- -------
---------- -- -
  -------- - --------
  ---      - -------------
-

--------- ------ -
  -------- - ------------------
-

----- ---- -
  --   ---    --- -------------------------
  ---- ------
-

我们可以使用以下命令生成数据模型元数据:

这将在 node_modules/.prisma/client 中生成一个名为 index.d.ts 的文件,其中包含了我们刚刚创建的数据模型。

创建 GraphQL Schema

接下来,我们需要创建一个 GraphQL Schema,该 Schema 描述了我们的 API。我们将使用 type-graphql 库来定义我们的 Schema。

首先,我们需要安装依赖项:

然后,我们可以创建一个 UserResolver 类,该类定义了我们的 User 类型的 GraphQL Resolver。

-- -------------------- ---- -------
------ - --------- ----- - ---- ---------------
------ - ------------ - ---- -----------------

-----------
------ ----- ------------ -
  --------- -- -------
  ----- ------- -
    ----- ------ - --- ---------------
    ------ -----------------------
  -
-

在上面的代码中,我们首先导入了 ResolverQuery 装饰器。然后,我们定义了一个 UserResolver 类,并在该类中定义了一个名为 users 的方法,该方法返回一个 Promise,该 Promise 解析为 User 类型的数组。

users 方法中,我们创建了一个新的 PrismaClient 实例,并使用 findMany 方法查询了所有用户。最后,我们将查询结果返回给 GraphQL。

接下来,我们需要创建一个 schema.ts 文件,该文件定义了我们的 GraphQL Schema。

在上面的代码中,我们首先导入了 buildSchema 函数和 UserResolver。然后,我们定义了一个名为 createSchema 的函数,该函数返回一个 Promise,该 Promise 解析为我们的 GraphQL Schema。

createSchema 函数中,我们调用了 buildSchema 函数,并将 UserResolver 添加到 resolvers 数组中。最后,我们将返回 buildSchema 函数的结果。

创建服务器

现在我们可以创建我们的服务器了。我们将使用 oak 库来创建我们的服务器。

首先,我们需要安装依赖项:

然后,我们可以创建一个 server.ts 文件,该文件定义了我们的服务器。

-- -------------------- ---- -------
------ - ----------- - ---- ---------------------------------
------ - -------------------- - ---- ------------------------------------------
------ - ------------ - ---- --------------

----- --- - --- --------------

----- ------ - ----- ---------------

------------------------------ ------- ------ ---- ----

------------------- ------- -- ------------------------

----- ------------ ----- ---- ---

在上面的代码中,我们首先导入了 Application 类、createGraphQLHandler 函数和 createSchema 函数。然后,我们创建了一个新的 Application 实例,并调用了 createSchema 函数来获取我们的 GraphQL Schema。

接下来,我们使用 createGraphQLHandler 函数将我们的 Schema 添加到我们的应用程序中。最后,我们调用 listen 方法来启动我们的服务器。

测试 API

现在我们可以测试我们的 API 了。我们可以使用 curl 命令或任何其他 HTTP 客户端来测试我们的 API。

上面的命令将向我们的服务器发送一个 GraphQL 查询,并返回所有用户的 idname 字段。

结论

在本文中,我们介绍了如何在 Deno 中使用 GraphQL 进行 API 开发。我们首先安装了 Deno 运行时环境和依赖项,然后创建了一个简单的数据模型和 GraphQL Schema,最后使用 oak 库创建了我们的服务器。通过本文,您应该能够了解如何在 Deno 中使用 GraphQL 进行 API 开发,并开始构建您自己的应用程序。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6758eab23bfce614ea7c5ac0

纠错
反馈