GraphQL 和 graphQL.js 的区别是什么

阅读时长 5 分钟读完

前言

GraphQL 是一种查询语言和运行时系统,可用于构建 API,它被 Facebook 在 2012 年首次 提出,并在 2015 年成为开源项目,GraphQL 官方支持多种语言的实现 GraphQL 服务的工具、框架和库。GraphQL.js 是一种 JavaScript 实现,它可以在 Node.js 中使用 GraphQL。

在这篇文章中,我们将比较 GraphQL 和 GraphQL.js 工具的区别,重点是它们如何使用,以及它们如何分别适用于前端开发。

GraphQL vs GraphQL.js

GraphQL 主要是一种查询语言,而不是具体的实现方式。它是一种 API 语言,它可以让前端开发者更容易地查询和获取后端数据。这意味着,您可以使用任何编程语言来编写 GraphQL 服务,只要该语言支持 GraphQL。

GraphQL.js 是 JavaScript 版本的 GraphQL 实现,它可以运行在 Node.js 环境上。它提供了一组用于创建、操作和运行 GraphQL 服务的 JavaScript 工具。GraphQL.js 具体实现了如何查询数据,提供了 query、mutation 和 subscription 等操作。

GraphQL.js 对想要使用 JavaScript 实现 GraphQL 服务的开发人员是一个很好的选择。它是一款成熟的 JavaScript 工具,已经经历了多年的稳定性和活跃性。如果您在开发时遇到了错误,可以从社区和文档中获得帮助和支持。另外,GraphQL.js 也有很丰富的生态系统,包括现有的工具和库支持,这使得它适用于各种不同的应用场景中。

如何使用 GraphQL.js

我们可以使用 GraphQL.js 在 Node.js 中构建 GraphQL 服务。下面是一个示例:

安装及配置

首先,您需要在项目中安装 graphql 包。可以使用 npm 或者 yarn 进行安装。如果您的项目中已经使用了 babel,可能还需要安装 babel-plugin-transform-runtime。

定义 schema

GraphQL 需要定义一个 schema 来描述你的数据、查询和操作接口。在下面的示例中,我们定义了一个 SCHEMA,它描述了一个使用者和他们的文章模型。注意,我们还通过 GraphQL 类型语言定义了一些类型。

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

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

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

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

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

定义 resolvers

我们还需要为查询和操作定义处理程序(resolver)。下面的示例中,我们定义了一个针对用户的查询、文章查询、创建用户和创建文章的操作,并将它们与适当的模型方法连接。

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

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

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

运行服务器

最后,我们可以将 schema 和 resolvers 导入服务器文件并将其传递给 GraphQL API 来注册 GraphQL 服务。

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

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

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

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

然后,我们就可以使用以下命令在终端运行我们的服务器:

接着我们就可以通过发送 GraphQL 查询,向我们的 GraphQL 服务发送请求了。例如,要查找所有用户的 ID 和名称,可以发送以下查询:

结论

GraphQL 以其灵活性、可扩展性和可操作性获得了众多开发人员的喜爱。在前端开发中,它被广泛用于构建 API,并帮助前端开发人员更轻松地获取和查询数据。

GraphQL.js 则是适用于 Node.js 平台的一款 GraphQL 实现工具,它提供了创建、操作和运行 GraphQL 服务的一组工具。如果您在前端应用程序中使用 Node.js,您可以考虑使用 GraphQL.js 来构建 GraphQL 服务。

我们希望这篇文章对您有所启发,并能帮助您更好地了解 GraphQL 和 GraphQL.js 的异同,从而更好地选择适合自己的工具来构建 GraphQL 服务。

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

纠错
反馈