在 Angular 中使用 GraphQL 的基础教程

GraphQL 是一种用于 API 的查询语言,由 Facebook 开发并开源。它可以让前端应用精确地获取需要的数据,避免了 REST API 中的“过度获取”问题,同时也可以轻松地获取嵌套数据。在 Angular 中使用 GraphQL 的过程中,我们可以利用已有的工具库来轻松地集成 GraphQL,让应用更加灵活高效。

安装 GraphQL 和 Angular Apollo

首先,我们需要在项目中安装以下两个依赖:

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

创建后端 GraphQL 服务器

我们需要一个后端来提供 GraphQL API,可以选择使用现成的工具,比如 Prisma,或者根据自己的需要来创建一个新的 GraphQL 服务器。下面是一个简单的示例,请确保您已经安装好了以下依赖:

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

在项目目录中创建一个文件 app.js,并添加以下代码:

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

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

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

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

在终端中执行 node app.js 启动服务器,然后在浏览器中打开 http://localhost:4000/graphql 确保服务器已成功启动。

在 Angular 中使用 GraphQL

现在我们已经有了一个 GraphQL API,现在我们需要在 Angular 中使用它。在 Angular 中,我们需要使用 Apollo Angular 来连接 GraphQL 服务器和我们的应用程序。

初始化 Apollo Client

app.module.ts 中,我们需要初始化 Apollo Client。首先导入所需的模块:

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

然后添加以下代码来初始化 Apollo Client:

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

在这里,我们创建了一个链接到后端 GraphQL 服务器的 Apollo 客户端,并将其存储在注入的 Apollo 中。

查询数据

现在我们已经初始化了 Apollo Client,我们可以在组件中发起 GraphQL 查询了。首先,导入所需的模块:

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

然后,在组件中添加以下代码:

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

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

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

这里我们发起了一个简单的 GraphQL 查询,并在组件中订阅了结果。在组件中,我们将 loadingerrornow 属性与 UI 绑定,实时显示 API 响应。

结论

在使用 GraphQL 进行数据查询时,只会返回我们需要的数据。与 REST API 不同,GraphQL 允许我们指定哪些数据在响应中返回,这样能够显著降低应用程序的带宽使用量。在 Angular 中集成 GraphQL 的过程中,我们可以使用 Apollo 客户端来快速创建一个连接到后端 GraphQL 服务器的环境。希望这篇文章能够帮助你了解如何在 Angular 中使用 GraphQL。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66fcff6f4471362601759c31