GraphQL 中的查询参数中如何正确地传递数组?

在 GraphQL 中,我们经常需要向查询参数中传递数组。但是,如果不正确地传递数组,就会导致意想不到的结果。因此,本文将介绍如何正确地传递数组。

1. 什么是数组?

在计算机科学中,数组是一种数据结构,它由一系列同类型的元素组成。我们通常使用数组来存储和处理一组值,例如数字、字符串、对象等。在 JavaScript 中,数组由一对中括号 [] 包围,其中每个元素用逗号分隔。

例如:

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

2. 如何在 GraphQL 中传递数组?

在 GraphQL 中,我们可以使用列表类型来声明一个由相同类型元素组成的数组。例如:

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

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

在上面的例子中,我们声明了三个字段:numbers、colors 和 people,它们都是由相同类型的元素组成的数组。numbers 的元素类型是 Int,colors 的元素类型是 String,people 的元素类型是 Person。

如果我们想要从客户端向这些查询参数中传递数组,我们可以使用以下语法:

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

在上面的例子中,我们声明了三个查询参数:numbers、colors 和 people,它们都是由相同类型的元素组成的数组。我们使用 $ 符号和参数名来声明查询参数。例如,$numbers 表示名为 numbers 的查询参数。我们还声明了一个名为 MyQuery 的查询,它使用我们声明的三个查询参数来查询三个字段:numbers、colors 和 people。

现在,让我们考虑一些常见的错误,以帮助你避免在传递数组时犯错。

3. 常见的错误

3.1 忘记使用方括号

当我们声明一个列表类型时,我们必须使用方括号 []。如果我们忘记使用方括号,就会导致语法错误。

例如,以下查询参数声明是错误的:

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

我们可以看到,在上面的例子中,我们没有使用方括号来声明列表类型的查询参数。因此,这个查询参数声明是错误的,会导致语法错误。

3.2 忘记使用 $ 符号

当我们声明查询参数时,我们必须使用 $ 符号和参数名。如果我们忘记使用 $ 符号,就会导致语法错误。

例如,以下查询参数声明是错误的:

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

我们可以看到,在上面的例子中,我们没有使用 $ 符号来声明查询参数。因此,这个查询参数声明是错误的,会导致语法错误。

3.3 忘记使用括号

当我们在查询参数中传递数组时,我们必须使用括号来包裹数组。如果我们忘记使用括号,就会导致语法错误。

例如,以下查询参数声明是错误的:

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

我们可以看到,在上面的例子中,我们没有使用括号来包裹数组。因此,这个查询参数声明是错误的,会导致语法错误。

3.4 忘记结束数组

当我们在查询参数中传递数组时,我们必须在数组的末尾添加一个逗号。如果我们忘记添加逗号,就会导致语法错误。

例如,以下查询参数声明是错误的:

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

我们可以看到,在上面的例子中,我们没有在数组的末尾添加逗号。因此,这个查询参数声明是错误的,会导致语法错误。

4. 示例代码

现在,让我们看一些示例代码,以展示如何在 GraphQL 中正确地传递数组。

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

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

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

在上面的示例代码中,我们声明了一个名为 MyQuery 的查询,它使用三个查询参数:numbers、colors 和 people。我们通过 variables 对象来传递这些查询参数。在 variables 对象中,我们使用了正确的语法来声明三个数组:numbers、colors 和 people。

5. 结论

在 GraphQL 中,正确地传递数组对于查询参数的正确性至关重要。如果我们不使用正确的语法来声明和传递数组,就会导致意想不到的结果。因此,我们应该使用本文中介绍的正确的语法来声明和传递数组,以确保我们的查询参数能够正常工作。

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