作者:低契一巴掌 | 来源:互联网 | 2022-12-13 15:20
我有一个突变:
const createSomethingMutation = gql`
mutation($data: SomethingCreateInput!) {
createSomething(data: $data) {
something {
id
name
}
}
}
`;
如何Something
在一个请求中创建多个?我需要像这样在我的GraphQL服务器上创建一个新的Mutation吗:
mutation {
addManySomethings(data: [SomethingCreateInput]): [Something]
}
还是有一种方法可以createSomethingMutation
在一个请求中多次使用来自Apollo Client的现有方法和不同的参数?
1> Daniel Reard..:
实际上,您可以使用别名来做到这一点,并为每个别名分别设置变量:
const createSomethingMutation = gql`
mutation($dataA: SomethingCreateInput!) {
createA: createSomething(data: $dataA) {
something {
id
name
}
}
createB: createSomething(data: $dataB) {
something {
id
name
}
}
}
`;
然后,您只需要提供一个具有两个属性的变量对象- dataA
和dataB
。但是,如果您需要动态变化的数量,事情就会变得很混乱。通常,在这种情况下,仅暴露单个突变来处理创建/更新一个或多个模型实例可能会更容易(更有效)。
如果您要减少从客户端到服务器的网络请求数量,也可以考虑使用查询批处理。