npm包graphile-build使用教程

阅读时长 7 分钟读完

1. 简介

Graphile-build是一个基于Graphql的Javascript库,主要用于构建高效、灵活的GraphQL服务。它已经深受前端开发者和GraphQL爱好者的喜爱,同时也得到了Github等多个社区的积极推荐。Graphile-build提供了一系列的插件来帮助开发者将数据库中的数据转化成GraphQL中的数据类型。这一系列插件提供了GraphQL Schema 自动构建、简单的字段重复以及定制处理所有远程请求等等功能,让开发者无需复杂地手动编写GraphQL Schema。本文将向大家介绍graphile-build的基本概念,使用方法以及一些示例代码,希望能够帮助读者更容易地理解和使用graphile-build。

2. 安装

Graphile-build依赖于Node.js和PostgreSQL,因此在使用之前需要确保Node.js与PostgreSQL环境已经安装好了。接下来,通过npm安装graphile-build:

当然,如果您想使用一些其他的插件,您也可以在安装时指定您需要的插件名称:

3. 基本概念

Schema

Schema即GraphQL对象类型的集合,其中包含了所有GraphQL对象类型、集合类型以及相应的字段、查询与变更。它可以被描述为一个数据源的公开API,用于描述数据的结构、类型以及字段之间的关系。

Plugin

Plugin是为Schema添加某些功能的小型软件包,它们可以自定义我们的Schema,以及某些特定功能的插件。插件实际上就是对GraphQL schema的"补丁",它们会改变Schema中的字段、类型、扩展器和指令等等,从而实现特定的目的。

builder

Builder是用于描述Schema和Plugin的一种模式。它被认为是一种更加高效、灵活的开发方式,它不仅可以在运行时快速构建Schema,并且可以轻松地扩展添加Plugin,同时也更加容易维护。

4. 使用方法

构建基本Schema

在使用graphile-build之前,我们需要先通过GraphQL objectType方法构建Schema中的字段、类型等。在这里我们举一个简单的例子,我们将构建一个包含name与age两个字段的GraphQL Schema。代码如下:

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

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

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

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

在上面的代码中,我们定义了一个personType,并在最终的Schema中添加一个person Query,最终输出结果如下:

增加Plugin

graphile-build拥有许多有用的Plugin,您可以方便地选择您需要的Plugin来增强您的Schema。这里我们选用graphile-build-pg插件作为例子,让我们来看一下如何将这个插件添加到我们的使用中,以便在Schema中使用PostgreSQL数据库。

首先,我们需要在安装graphile-build-pg的同时,将pg包同时进行安装:

然后,我们可以将graphile-build-pg添加到我们的Schema中:

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

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

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

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

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

在上面的例子中,我们首先引入了graphile-build-pg插件,然后在buildSchema过程中将它加入到plugins中。接下来,我们在Query中添加了一个persons选项,它会从我们的PostgreSQL数据库中查询出数据,最后通过GraphQL返回。最后,我们将数据库连接信息利用context参数传入到Schema中,在graphql方法中调用即可。

5. 总结

本文向大家介绍了npm包graphile-build的使用方法,包括构建Schema、增加Plugin等操作,并且提供了详细的代码示例。Graphile-build的出现加速了GraphQL的普及,进一步提高了工程师的开发效率。如果您已经习惯了使用GraphQL,并且在开发中碰到了较为复杂的业务场景,相信graphile-build能够为您的开发工作提供更多的便利。

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