GraphQL 中最好的错误解析器——GraphiQL

GraphiQL 是一个强大而灵活的 GraphQL IDE,它为开发人员提供了易于使用的界面,可以用于测试、查询和浏览 GraphQL API。除此之外,GraphiQL 还提供了一个最好的错误解析器,为开发人员提供了快速和准确的 GraphQL 错误分析。

GraphiQL 提供的错误解析器

GraphiQL 自带了一个错误解析器,能够直接将GraphQL返回的错误信息可视化,这对于开发人员来说非常有用,因为GraphQL 通常返回了深层嵌套的错误信息,使开发人员很难准确地确定错误的发生位置和原因。GraphiQL 错误解析器可以将这些深层嵌套的错误信息以可视化方式呈现,大幅度提高了开发人员的调试效率。

例如,下面是一个 GraphQL 查询:

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

如果此查询中发生了错误,GraphiQL 可以像这样提供有用的错误信息:

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

这个提示告诉开发人员在“user”字段中的”id”参数上发生了错误,这是一个无效的值。它甚至还提供了错误的行号和列号,以帮助开发人员更快地找到问题所在。

如何使用 GraphiQL 错误解析器

使用 GraphiQL 错误解析器非常简单,因为它已经内置在 GraphiQL IDE 中了。只需将 GraphQL 查询和变量复制粘贴到 GraphiQL 编辑器中,然后单击“运行”按钮即可获得返回的错误信息。如果存在错误,GraphiQL 将在错误信息细节下显示具体的错误信息。

下面是一个使用 GraphiQL 进行错误解析的示例代码:

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

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

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

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

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

以上示例代码将通过”graphql-request”来请求 GraphQL API,其中错误信息是通过将错误对象的“response.errors”属性输出到控制台中来获取和解析的,并将 Gson 库的 GsonBuilder 类型适配器应用于每个输出。

结论

通过本文,了解了 GraphQL 中最好的错误解析器--GraphiQL,并通过示例代码等详细深入的解析与学习来确保开发人员在使用 GraphQL API 时移步效率的同时,准确地捕获和解决错误。如果你是一个前端开发人员并且在设计和使用 GraphQL API 中遇到了错误,建议你尝试使用 GraphiQL 以解决问题。

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