0

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

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

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

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

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

1 回答 1

0

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

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

于 2021-12-20T17:44:41.143 回答