【发布时间】:2017-09-23 06:59:30
【问题描述】:
在我的 graphQL 架构中,我在两个对象之间建立了关系。说人和猫。
人类有很多猫,猫有一个人。
如果我想创建一个属于人类的新猫,我需要通过 ID 查询人类,然后我需要使用该 ID 进行突变以创建猫。
如何将这些链接在一起?看起来很简单,但找不到合适的例子。我也很可能以错误的方式思考这个问题。
【问题讨论】:
在我的 graphQL 架构中,我在两个对象之间建立了关系。说人和猫。
人类有很多猫,猫有一个人。
如果我想创建一个属于人类的新猫,我需要通过 ID 查询人类,然后我需要使用该 ID 进行突变以创建猫。
如何将这些链接在一起?看起来很简单,但找不到合适的例子。我也很可能以错误的方式思考这个问题。
【问题讨论】:
我认为将它们链接起来没有意义。如果您想创建一只新猫,您需要一个列表,您可以在其中选择要将猫添加到的人类。因此,在发送突变之前,您已经必须查询人类。
猫的变异将包含选定的人类 id,过程可能如下所示:
const getAllHumansQuery = gql`
query getAllHumans {
getAllHumans {
id
name
}
}
`;
在客户端选择人员构建表单
发送创建新的猫突变
// server
`
input CatInput {
name: String!
humanIds: [ID!]
}
createCat(newCat: CatInput!) : String
`
// client
const createCatMutation = gql `
mutation createCat($newCat: CatInput!) {
createCat(newCat: $newCat) {
name
}
}
`;
【讨论】: