解决 GraphQL 查询与 Prisma models 同步的问题

阅读时长 3 分钟读完

前言

在使用 GraphQL 和 Prisma 的时候,我们通常会将 GraphQL 查询和 Prisma models 定义在不同的文件中。这会导致一个问题:当我们修改了 Prisma models 的定义,但并没有同步更新 GraphQL 查询时,会导致查询出现错误。本文将介绍如何解决这个问题。

解决方法

解决这个问题最简单的方法就是使用代码生成器。具体来说,我们可以使用graphql-codegen来生成 GraphQL 查询。以下是具体步骤:

步骤一:安装依赖

步骤二:创建配置文件

在项目根目录下创建一个配置文件 codegen.yml,并添加以下内容:

-- -------------------- ---- -------
---------- ----
------- --------------------
---------- ------------------
----------
  -------------------------
    --------
      - ------------
      - -----------------------
      - ----------------------------
展开代码

注意,这里的 schema 配置项指定了我们的 GraphQL schema 文件路径,documents 配置项指定了我们的 GraphQL 查询文件路径。我们还指定了代码生成结果的输出路径。

步骤三:生成代码

接下来,我们执行以下命令以生成代码:

如果一切顺利,我们应该可以在指定的输出路径下看到生成的代码文件。

步骤四:使用生成代码

最后,我们只需要在我们的代码中使用生成的代码即可。例如,假设我们需要查询用户列表,那么我们可以这样写:

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

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

------------------------ -- -
  ------------------------
---
展开代码

这里的 request 函数是由 typescript-graphql-request 插件生成的。它将我们的 GraphQL 查询转换为了一个函数,我们可以通过它来向 GraphQL 服务器发送请求。

至此,我们已经成功解决了 GraphQL 查询与 Prisma models 同步的问题。

总结

本文介绍了如何使用代码生成器解决 GraphQL 查询与 Prisma models 同步的问题。希望本文可以帮助大家更好地使用 GraphQL 和 Prisma。

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

纠错
反馈

纠错反馈