GraphQL Mutations 教程:如何使用 Mutation 操作修改数据

GraphQL Mutations 提供了一种简单而强大的方式来修改数据。本文将介绍 GraphQL Mutations 的基础概念和用法,带你了解如何使用 Mutation 操作修改数据。

用 Apifox,节省研发团队的每一分钟

GraphQL Mutations 教程:如何使用 Mutation 操作修改数据

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

GraphQL

GraphQL 是一种 API 查询语言和运行时,用于使用现有数据完成这些查询。它为您的 API 中的数据提供了完整且易于理解的描述,让客户能够准确地询问他们需要什么,更容易随着时间的推移发展 API,并启用强大的开发人员工具。

GraphQL

GraphQL 操作指令

GraphQL 作为一个高效的开发手段,它提供了一些自带的指令,让我们能去更高效地对数据进行增删改查,比如:

  • query:查询
  • mutation:修改

query

使用 GraphQL 的 query 指令,可以进行查询数据,并且可以只查我们所需要的数据,降低了查询的数量,大大提升了查询的速率,非常强大。

比如我们现在需要做一个图书管理系统,我想要查询一个图书列表,那么我的 query 语句会这么写:

query getBooks {
  books {
    id,name,page
  }
}

上面语句的意思就是:

  • query:执行的操作名,也就是查询
  • getBooks:执行的函数名
  • books:后端定义的接口
  • id,name,page:所需要查询的字段

这个查询语句最终会返回什么样的数据呢,如下面,可以看到只会返回我们所需要的数据,并不会返回额外的字段,这大大提升了查询的速率:

{
  "data": {
    "books": [
      {
        "id": "123",
        "name": "javascript",
        "page": 500
      },
      {
        "id": "125",
        "name": "vuejs",
        "page": 600
      }
    ]
  }
}

上面说了,getBooks 是一个函数名,那既然是函数,就可以传递参数,我们需要使用到 GraphQL 的 variables 这个字段,去进行查询。

比如我现在想要查询一个 id 为 123 的书本,我可以这么去写 query:

query getBook($id: ID!){
  book(id: $id) {
    id,name,page
  }
}

我们看到,我们需要传递 ID 这个参数,才能查到对应的书本,所以我们需要传 variables。

{
  "id": "123"
}

这样才能返回对应的那个书本。

{
    "data": {
        "id": "123",
        "name": "javascript",
        "page": 500
    }
}

mutation

mutation 指令是用来修改数据的,比如我现在想要修改 id 为 123 的书本,将 page 从 500 修改到 550:

mutation editBook($id: id!,$page: page!) {
  editBook(id: $id,page: $page) {
    id,name,page
  }
}

variables 填写:

{
  "id": "123",
  "page": 550
}

修改完会返回修改数据:

{
    "data": {
        "id": "123",
        "name": "javascript",
        "page": 550
    }
}

Apifox 调试 GraphQL mutation

我们可以使用 Apifox 来进行 GraphQL 的 mutation 指令操作。

查询列表

首先我们使用 Apifox 查询一下现有的 books 列表,我们需要填好 query 参数和 variables 参数,我们看到返回的数据 page 是 500:

查询现有 books 列表

我们把这个请求保存为 接口用例。

保存为 接口用例
保存为 接口用例

使用 mutation

然后我们新建一个 mutation 的接口用例,用来修改 page。

新建 mutation 的接口用例

然后保存为 接口用例。

保存为 接口用例

验证结果

这个时候我们重新查询一次数据,看数据是否被更新了,我们重新回到 query 这个接口用例,重新运行一次,看到 page 已经改成 550。

验证结果

关于Apifox

Apifox 是一体化 API 协作平台,可以实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。Apifox 提供了一种全面的 API 管理解决方案。使用 Apifox ,你可以在统一的平台上设计、调试、测试以及协作你的 API,消除了在不同工具之间切换和数据不一致的问题。 简化了你的 API 工作流,并确保了前端、后端和测试人员之间的高效协作。

欢迎体验一下,完全免费的哦:在线使用 Apifox

Apifox 官网