GraphQL 的错误码规范和调用方式

阅读时长 5 分钟读完

GraphQL 是一种用于 API 的查询语言和运行时的环境,它提供了一种让前端开发者能够高效地查询、修改和订阅多个 data API 的方法。在使用 GraphQL 的过程中,错误码的设计和规范非常重要,有助于开发者更好地理解和处理错误。

在 GraphQL 中,一般使用一个字符串表示错误码,这个字符串可以包含多个用 . 分隔的部分,每个部分都表示一个更具体的错误子码。例如:

这个错误码表示在加载数据时发生了超时错误。下面我们来深入探讨 GraphQL 的错误码规范和调用方式。

GraphQL 的错误码设计原则

在设计 GraphQL 的错误码时,有一些原则能够帮助开发者更好地理解和处理错误:

  1. 错误码要具有一致性。 GraphQL 的错误码应该尽可能地符合通用的规范,保证它们易于识别和使用。这样,即使是新手开发者也能够快速理解错误,进行排查处理。

  2. 错误码要包含适当的上下文信息。 GraphQL 的错误码应该能够让开发者通过错误码快速理解错误的发生原因。这个过程中,上下文信息的提供非常重要,包括错误位置、请求参数等等。

  3. 错误码要承载错误处理的指导意义。 GraphQL 的错误码应该能够告诉开发者如何排查和处理错误。这个过程中,错误码中包含的信息应该足够详细,帮助开发者更好地理解并处理错误。

  4. 错误码要足够灵活。 GraphQL 的错误码应该能够适应不同类型的错误,包括网络错误、RPC 错误、资源错误等等。同时,错误码也应该能够自定义,以便让开发者根据具体需要进行定义和调整。

GraphQL 的错误码的调用方式

在 GraphQL 中,错误码的调用方式可以分为两类:

  1. Errors 数组。这是 GraphQL 的默认错误处理方式,当出现错误时,GraphQL 会将错误信息打包成一个 GraphQL Error 对象,从而形成一个 GraphQL Error 的数组。开发者可以通过捕捉这个数组,进行错误处理。

例如:

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

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

-- -------- -
  -- ------
-
展开代码
  1. Status Code。这是一种更加直接的错误码调用方式,它可以让开发者更容易地识别和处理错误。在这种模式下,GraphQL 会识别错误类型,然后将错误类型转换为具体的 HTTP 状态码,从而返回给客户端。

例如:

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

-- ----------- --- ---- -
  -- -- --- --
-
展开代码

示例代码

下面是一个完整的示例代码,演示了在 GraphQL 中使用错误码的规范和调用方式:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

----------------------- --- -- -- -
  --------------- ------ ----- -- --------
--
展开代码

上面的代码演示了如何在 GraphQL 中使用错误码。在这个例子中,我们定义了 user 相关的错误码,同时在 createUser 函数中进行了错误处理。最后,在 formatError 中定义了返回给客户端的错误码格式,其中 extensions.code 表示了错误码。

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

纠错
反馈

纠错反馈