【问题标题】:GraphQL - How to chain queries and mutations? [duplicate]GraphQL - 如何链接查询和突变? [复制]
【发布时间】:2017-09-23 06:59:30
【问题描述】:

在我的 graphQL 架构中,我在两个对象之间建立了关系。说人和猫。

人类有很多猫,猫有一个人。

如果我想创建一个属于人类的新猫,我需要通过 ID 查询人类,然后我需要使用该 ID 进行突变以创建猫。

如何将这些链接在一起?看起来很简单,但找不到合适的例子。我也很可能以错误的方式思考这个问题。

【问题讨论】:

    标签: graphql apollo


    【解决方案1】:

    我认为将它们链接起来没有意义。如果您想创建一只新猫,您需要一个列表,您可以在其中选择要将猫添加到的人类。因此,在发送突变之前,您已经必须查询人类。

    猫的变异将包含选定的人类 id,过程可能如下所示:

    1. 人类查询

    const getAllHumansQuery = gql`
    query getAllHumans {
       getAllHumans {
          id
          name
       }
    }
    `;
    1. 在客户端选择人员构建表单

    2. 发送创建新的猫突变

    // server
    `
    input CatInput {
      name: String!
      humanIds: [ID!]
    }
    
    createCat(newCat: CatInput!) : String
    `
    
    
    // client
    
    const createCatMutation = gql `
      mutation createCat($newCat: CatInput!) {
        createCat(newCat: $newCat) {
          name
        }
      }
    `;

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 2017-08-24
      • 2020-11-04
      • 2019-05-24
      • 2019-04-04
      • 2020-08-03
      • 2016-01-14
      • 2018-09-17
      • 2022-01-13
      相关资源
      最近更新 更多