如何构建跨平台 GraphQL 应用程序?

阅读时长 10 分钟读完

GraphQL 是一种用于 API 的查询语言,旨在为客户端提供所需的数据。从开发人员的角度来看,GraphQL 有很多优势,它不仅可以提供更好的应用性能,而且具有更好的可扩展性和可重复性。在此基础上,本篇文章将介绍如何构建跨平台的 GraphQL 应用程序,以及如何利用移动应用程序从 GraphQL 中获益。

什么是跨平台 GraphQL 应用程序?

跨平台的 GraphQL 应用程序可以运行在不同种类的客户端设备上,例如:iOS,Android,Web 和 Windows。这种跨平台的形式可以使应用程序具有更好的可重复性,更容易维护和更易于开发。移动应用程序特别适合使用 GraphQL,因为它们旨在为低带宽网络和延迟提供稳定的数据交互。

搭建 GraphQL 服务器

要构建跨平台的 GraphQL 应用程序,首先需要准备好 GraphQL 服务器。在本文中,我们将使用 Node.js 的 Express 框架来搭建 GraphQL 服务器。我们使用 npm 模块管理器来安装所需的库。

Step 1: 安装所需的库

由于我们使用的是 Express 框架,因此需要安装expressexpress-graphql npm 包。还需要安装graphqlgraphql-toolsgraphql-import

  • express - Web 应用程序框架。
  • express-graphql - 负责将 GraphQL 请求转换成服务端文本。
  • graphql - GraphQL 规范的 JavaScript 实现。
  • graphql-tools - 一系列创建和操作 GraphQL schema 的工具。
  • graphql-import - 导入的 GraphQL schema。

Step 2: 实现 GraphQL 服务

首先,读入 GraphQL schema 文件,通过 graphql-import 库将其导入。这个库可以让我们将 GraphQL schema 文件分为多个文件,并从 js 中导入这些文件,以轻松地将它们组合起来。

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

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

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

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

现在,我们可以利用 graphqlexpress 实例来创建 GraphQL 服务。

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

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

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

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

完成了这些步骤后,我们的 GraphQL 服务实例可以部署在我们选择的 Web 服务器上,提供给客户端访问。

为跨平台应用添加 GraphQL 数据

要为跨平台应用添加 GraphQL 数据,需要完成以下四个步骤:

  1. 创建一个 GraphQL 客户端,即 API 集成,用于查询和变更应用程序状态。
  2. 向应用程序添加数据存储,允许应用程序状态在客户端之间交换。
  3. 将 GraphQL schema 文件添加到应用程序中,以确保数据可以在客户端之间共享。
  4. 配置应用程序,以便它可以查询和变更状态。

Step 1: 创建 GraphQL 客户端

要创建 GraphQL 客户端,需要将创建和执行 GraphQL 查询和变更的工作分离,以允许应用程序可以在多个客户端之间共享代码。可以使用 apollo-clientgraphql-tag 库来创建和执行 GraphQL 查询和变更。

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

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

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

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

Step 2: 添加数据存储

在跨平台应用程序中,需要为数据存储添加支持。可以使用 Apollo Client 的本地状态管理来处理客户端上的数据状态。

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

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

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

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

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

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

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

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

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

Step 3: 添加 GraphQL schema 文件

需要将 GraphQL schema 文件添加到跨平台运行时环境中,以将代码的 API 定义与代码的执行代码分离。可以使用 webpack 对代码进行打包,并使用 graphql-tag/loader 去加载 GraphQL schema 文件。

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

Step 4: 配置应用程序

将上述步骤的所有工作组合在一起,就可以构建跨平台的 GraphQL 应用程序了。

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

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

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

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

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

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

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

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

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

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

结论

现在,您已经知道如何构建跨平台的 GraphQL 应用程序,并且掌握了以下几个步骤:

  1. 创建 GraphQL 服务器。
  2. 为跨平台应用程序添加 GraphQL 数据。
  3. 将 GraphQL schema 文件添加到应用程序中。
  4. 配置应用程序。

开始实际构建跨平台 GraphQL 应用程序吧!

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

纠错
反馈