另一个突变的GraphQL结果



同时是否可以使用GraphQL突变的结果作为另一个突变的参数?

我想在一次通话中创建一个用户和他的地址。

首先我写地址,然后取地址id来创建用户。通过输入填充必要的数据效果完美

这在不触发客户端新突变的情况下可能吗?

const createUser = gql`
mutation createUser(
$user: createUserInput!
$address: createAddressInput!
) {
createAddress(input: $address) {
address {
id       
}
}
createUser(input: $user ) {
user {
id
username
}
}
}
`

不,这是不可能的。您必须从客户端发出两个连续的请求,或者调整您的服务器实现。我推荐后者。

您应该更改架构,使CreateUserInput类型不仅接受addressId: ID,还可以接受newAddress: CreateAddressInput对象,然后在创建新用户之前使用该对象创建新地址。

最新更新