掌握 GraphQL 中的参数传递及输入类型

GraphQL 是一种用于构建 API 的查询语言,它具有强大的查询能力和更少的请求次数。参数传递是 GraphQL 中非常重要的组成部分之一,它可以帮助我们构建更灵活的 API。

在 GraphQL 中,可以通过在查询字段上添加参数来进行参数传递。可以将这些参数嵌入查询语句中,以便在查询中使用它们。此外,您还可以使用 GraphQL 定义的各种输入类型,以处理从客户端到服务器发送的数据。

参数传递

GraphQL 允许在查询和变异操作上使用参数,这些参数具有名称和类型,并且可以很容易地引用它们。例如,以下是一个查询,它为某个用戶查找其某个特定 ID 的所有帖子。

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

在上面的例子中,我们使用了名为$userId的参数。该参数被声明为必需变量,并且其类型为 ID 类型。我们可以通过传递一个userId值来执行此查询。

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

在上面的示例中,我们将用户 ID 设置为“12345”。

输入类型

除了使用参数传递之外,GraphQL 还为开发人员提供了一些标准输入类型,用于处理客户端传递到服务器的数据。通过这些输入类型,您可以确保从客户端发送的数据遵循特定的规则,并且可以进行强类型检查,这样可以避免一些常见的问题。

以下是几个常用的输入类型。

Scalars

Scalars 是一种输入类型,用于表示基本数据类型,例如 String、Int、Float 和 Boolean。如果 GraphQL 服务器期望从客户端接收这些数据类型,可以将它们映射到 Scalars 数据类型上。例如:

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

在上面的示例中,我们将 ID 和 String 类型的参数传递给 updateName 变异操作。

Enum

Enum 是一种输入类型,它用于表示枚举值。它定义了一组可用的值,这些值可以在查询或变异中进行选择。例如:

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

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

在上面的示例中,我们定义了一个名为 Status 的枚举类型,它具有三个值:PENDING、PUBLISHED 和 CANCELED。我们在 Post 类型中使用了 Status 类型,在查询中选择一个状态值。

Input

Input 是一种输入类型,用于表示包含复杂数据的对象,这些对象具有多个字段。它类似于常规类型,但用于作为输入参数传递。例如:

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

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

在上面的示例中,我们定义了 PostInput 输入类型,并将其用作 createPost 变异操作的参数。

结论

参数传递和输入类型是 GraphQL 中非常重要的组成部分。掌握这些概念可以帮助您更好地构建更灵活的 API,并确保从客户端发送的数据符合预期。如果您想了解更多有关 GraphQL 的信息,请访问 GraphQL 官方文档。

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