【问题标题】:GraphQL - Is it possible to set a variable with a result for a mutationGraphQL - 是否可以设置一个带有突变结果的变量
【发布时间】:2017-11-06 17:35:50
【问题描述】:

我想在我的 GraphQL 查询中进行 2 次创建。 (我知道我的查询结构不正确,但这是为了说明我的问题)

mutation {
    affiliateCreate(company: "test mutation") {
    $id: id,
    affiliateUserCreate(affiliate_id: $id, name: "test name") {
      id, 
      name
    },
    company
  }
}

我希望我的第一个 id 结果在我传递给第二个创建调用的变量中?我对 GraphQL 很陌生,我想知道这是否可能。

还有其他方法可以做到这一点吗?或者我必须做 2 个突变调用?第一个是affiliateCreate,第二个是后备?

谢谢

【问题讨论】:

    标签: graphql


    【解决方案1】:

    GraphQL 不支持您想要执行的操作。在 Graphcool API 中,我们使用我们所谓的嵌套突变来处理这种情况。我还听说它被称为复杂突变

    嵌套的创建突变以嵌套的输入对象参数为特征。如果您将输入对象 author 添加到 affiliateCreate 突变,您可以这样使用它:

    mutation createAffiliateAndUser {
      affiliateCreate(
        company: "test company"
        author: {
          name: "test user"
        }
      ) {
        id
      }
    }
    

    这将创建一个会员、一个用户,然后将两者链接在一起。同样,如果您将输入对象 affiliates 添加到 userCreate 突变,它可能如下所示:

    mutation createUserAndAffiliates {
      userCreate(
        name: "test user"
        affiliates: [{
          company: "first company"
        }, {
          company: "second company"
        }]
      ) {
        id
      }
    }
    

    【讨论】:

    • 我猜,在你的resolve方法的回调中,你传递了用户ID来创建会员?
    • 很遗憾,link 已经死了。 :-) 搜索“使用嵌套突变改进 dx”这一短语刚刚找到了指向死链接的链接。
    猜你喜欢
    • 2022-01-17
    • 2019-01-08
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 2016-06-18
    相关资源
    最近更新 更多