如何处理在 GraphQL 查询中包含的异常值

阅读时长 6 分钟读完

GraphQL 是一种用于 API 的查询语言,它允许客户端指定需要返回的数据,从而避免了 REST API 中的过度查询和冗余数据。但是,当我们在 GraphQL 查询中包含了异常值时,可能会导致一些问题。在本文中,我们将讨论如何处理这些异常值。

什么是异常值?

在 GraphQL 查询中,我们可以指定需要返回的字段和它们的类型。如果我们请求的字段在返回的数据中不存在,那么就会出现异常值。

例如,假设我们有以下查询:

如果用户的地址信息不存在,那么返回的数据可能会像这样:

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

在这个例子中,"address": null 就是一个异常值。

处理异常值

异常值可能会导致一些问题,例如前端页面上的错误或者应用程序崩溃。为了避免这些问题,我们需要处理这些异常值。

1. 检查异常值

我们可以通过检查返回的数据来查看是否有异常值。在上面的例子中,我们可以检查 user.address 是否为 null。如果是,那么我们可以采取一些措施,例如不显示地址信息或者使用默认地址信息。

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

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

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

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

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

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

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

2. 使用默认值

另一种处理异常值的方法是使用默认值。如果我们知道某个字段可能会出现异常值,那么我们可以在查询中为该字段设置默认值。在上面的例子中,我们可以将 user.address 设置为一个默认地址。

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

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

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

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

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

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

3. 使用异常处理程序

如果我们在查询中包含了异常值,那么 GraphQL 服务器可能会返回一个错误。我们可以使用异常处理程序来处理这些错误。在 Apollo Client 中,我们可以使用 onError 来处理异常。

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

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

在上面的例子中,我们将所有的 GraphQL 错误输出到控制台。我们也可以根据错误类型采取不同的行动。

结论

在 GraphQL 查询中包含异常值可能会导致一些问题。为了避免这些问题,我们可以检查异常值、使用默认值或者使用异常处理程序。这些方法都可以帮助我们更好地处理异常值,从而提高应用程序的稳定性和可靠性。

示例代码

以下是一个完整的示例代码,用于演示如何处理在 GraphQL 查询中包含的异常值。

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

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

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

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

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

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

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

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

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

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

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

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

纠错
反馈