如何 Handeling 和 Logging Graphql Validation Errors

阅读时长 6 分钟读完

介绍

GraphQL 是一种用于 API 的查询语言,它提供了一种更高效、强大和灵活的方式来获取和操作数据。GraphQL 的一个重要特性是强大的类型系统,它使得开发者可以在编写查询时获得非常精确的反馈。

在 GraphQL 中,类型系统不仅用于定义查询和变异的输入和输出类型,还用于定义查询和变异的验证规则。这些验证规则可以确保查询和变异的输入符合预期,并在输入无效时返回详细的错误信息。

本文将介绍如何在前端应用中处理和记录 GraphQL 验证错误,以便开发者可以更好地调试和修复这些错误。

处理 GraphQL 验证错误

在 GraphQL 中,当查询或变异的输入无效时,服务器将返回一个错误响应,其中包含一个或多个验证错误。这些验证错误包含有关输入无效的详细信息,例如无效字段、无效类型或缺少必需字段。

要处理 GraphQL 验证错误,我们可以使用 GraphQL 客户端库提供的错误处理机制。对于大多数客户端库,当服务器返回错误响应时,客户端库会抛出一个异常。我们可以使用 try-catch 块来捕获这些异常,并从异常中提取有关错误的信息。

以下是一个使用 Apollo 客户端库处理 GraphQL 验证错误的示例:

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

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

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

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

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

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

在上面的示例中,我们使用 onError 函数创建了一个错误链接,该链接将在服务器返回错误响应时调用。在 onError 函数中,我们使用 console.error 函数记录每个验证错误的详细信息。

ApolloClient 中,我们将错误链接与 HTTP 链接合并,以便在发送查询和变异时使用。当调用 client.query 时,如果服务器返回错误响应,则会抛出一个异常。我们可以使用 try-catch 块来捕获这些异常,并记录错误信息。

记录 GraphQL 验证错误

在前端应用中记录 GraphQL 验证错误非常重要,因为这可以帮助开发者更好地调试和修复这些错误。记录 GraphQL 验证错误可以使用各种工具和服务,例如日志记录库、错误报告服务和监控服务。

以下是一个使用 Sentry 日志记录服务记录 GraphQL 验证错误的示例:

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

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

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

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

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

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

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

在上面的示例中,我们使用 Sentry 日志记录服务初始化了一个 Sentry 客户端。在 onError 函数中,我们使用 Sentry.captureException 函数记录每个验证错误的详细信息。

ApolloClient 中,我们将错误链接与 HTTP 链接合并,以便在发送查询和变异时使用。当调用 client.query 时,如果服务器返回错误响应,则会抛出一个异常。我们可以使用 try-catch 块来捕获这些异常,并记录错误信息。

结论

在本文中,我们介绍了如何在前端应用中处理和记录 GraphQL 验证错误。处理 GraphQL 验证错误可以帮助开发者更好地调试和修复这些错误。记录 GraphQL 验证错误可以使用各种工具和服务,例如日志记录库、错误报告服务和监控服务。我们建议开发者在开发 GraphQL 应用时使用这些技术,以便更好地处理和记录 GraphQL 验证错误。

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

纠错
反馈