Graphql 解释在Apollo客户端上调用mutate的语法

Graphql 解释在Apollo客户端上调用mutate的语法,graphql,apollo,apollo-client,Graphql,Apollo,Apollo Client,括号中的数字是我对查询不同部分的注释。下面是我对其含义的最佳猜测。纠正我的错误或不完整之处。我最大的疑问是斜体: [1] client.mutate Apollo客户端上有一个mutate方法,因为Apollo客户端处理突变的方式不同于查询 [2] 突变只是一个名为突变的对象属性,它被传递给Apollo客户端 [3] 服务器上的根变异字段 [4] 签出根字段上可用的字段。我感到惊讶的是,signOut是在突变之后立即编写的,而不是在一对括号中自己的行上 [5] signOut我猜服务器上的sig

括号中的数字是我对查询不同部分的注释。下面是我对其含义的最佳猜测。纠正我的错误或不完整之处。我最大的疑问是斜体:

[1] client.mutate Apollo客户端上有一个mutate方法,因为Apollo客户端处理突变的方式不同于查询

[2] 突变只是一个名为突变的对象属性,它被传递给Apollo客户端

[3] 服务器上的根变异字段

[4] 签出根字段上可用的字段。我感到惊讶的是,signOut是在突变之后立即编写的,而不是在一对括号中自己的行上

[5] signOut我猜服务器上的signOut字段解析为返回另一个名为signOut的字段?我理解正确吗?这正常吗

[6] success内部的singOut字段解析为返回一个名为success的对象,该对象与[4]signOut和[5]signOut有关,后者是您为突变指定的名称

例如:

client.mutate[1]({
    mutation[2]: gql`
        mutation[3] signOut[4] {
            signOut[5] {
                success[6]
            }
        }
    `,
});
是同一种突变吗

mutation signOut {
  signOut {
    success
  }
}
两种突变触发的方法都是signOut,但它们具有不同的名称logout和signOut

其他各点都是正确的

注:

mutationor查询的名称仅用于客户端,服务器没有命名突变的定义

在一个突变中有两个水平是因为你可以在一个突变中触发多个突变,例如:如果用户需要注销并取消订阅通知,我们可以构建一个突变,如:

mutation logOut {
  signOut {
    success
  }
}

在本例中,我们将触发2个突变注销和取消订阅的突变命名为logOutAndUnsubscribe。同样,服务器实现了注销和取消订阅,但对注销和取消订阅一无所知。

谢谢!您能否展开讨论:A客户端上的名称是否需要与服务器上的名称匹配,或者是否仍将返回正确的数据?B有两个级别的名称,注销>注销或者注销>注销,而不是简单的注销,这有什么意义?
mutation logOutAndUnsubscribe {
  signOut {
    success
  }
  unsubscribe {
    success
  }
}