GraphQL 中添加 Post 请求(Mutation)及带参数

GraphQL 是一种用于 API 的查询语言,它提供了一种更高效、强大和灵活的方式来获取数据。除了查询(Query)操作外,GraphQL 还支持修改(Mutation)操作。本文将介绍如何在 GraphQL 中添加 Post 请求(Mutation)以及如何传递参数。

什么是 Mutation

Mutation 是 GraphQL 中的一种操作类型,用于修改数据。与查询(Query)不同,Mutation 可以修改服务器上的数据,例如创建、更新或删除数据。

Mutation 的语法与 Query 类似,但是需要使用 mutation 关键字。下面是一个简单的 Mutation 示例:

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

这个 Mutation 用于创建一个名为 Alice 年龄为 25 的用户,并返回其 ID、姓名和年龄。

如何添加 Mutation

要在 GraphQL 中添加 Mutation,首先需要定义 Mutation 的类型。在 GraphQL Schema 中,可以使用 type Mutation 来定义 Mutation 类型。下面是一个简单的 Mutation 类型定义示例:

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

在上面的示例中,createUser 是一个 Mutation 操作,它接受一个 CreateUserInput 类型的参数,并返回一个 User 类型的对象。

接下来,需要在 GraphQL Resolver 中实现 createUser 操作。Resolver 是一个函数,用于处理 GraphQL 操作。下面是一个简单的 Resolver 示例如下:

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

在上面的示例中,createUser Resolver 接受三个参数:

  • parent:父级对象,通常用于处理嵌套查询。
  • input:Mutation 操作的参数。
  • context:一个包含上下文信息的对象,例如数据库连接。

在 Resolver 中实现了 createUser 操作,它将接受一个 input 参数,并将其添加到数据库中。

如何传递参数

在 GraphQL 中,可以使用输入类型(Input Type)来传递参数。输入类型类似于对象类型,但是只包含输入参数,而不包含查询结果。

下面是一个简单的输入类型定义示例:

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

在上面的示例中,CreateUserInput 是一个输入类型,它包含两个必填字段:nameage

在 Mutation 中使用输入类型可以简化参数的传递。下面是一个使用输入类型的 Mutation 示例:

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

在上面的示例中,createUser Mutation 接受一个 input 参数,该参数是一个 CreateUserInput 类型的对象。

在 Resolver 中可以通过解构 input 参数来访问输入类型的字段。下面是一个使用输入类型的 Resolver 示例如下:

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

在上面的示例中,input 参数被解构为 nameage 两个字段。

总结

Mutation 是 GraphQL 中的一种操作类型,用于修改数据。要添加 Mutation,需要在 GraphQL Schema 中定义 Mutation 类型,并在 Resolver 中实现 Mutation 操作。在 Mutation 操作中,可以使用输入类型来传递参数。

以上是 GraphQL 中添加 Post 请求(Mutation)及带参数的介绍,希望对你有所帮助。

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