假设我有两种类型,User
和Permission
,例如
type User {
id: ID!
firstName: String!
lastName: String!
email: String!
permissions: [Permission!]
}
type Permission {
id: ID!
name: String!
}
User
有permissions
字段,其中包含关联的Permission
类型记录列表。
如何构建更新用户拥有权限的变异查询?
答案 0 :(得分:1)
我在变异中使用了ID
类型的permissions
类型列表
我已将permissions
参数设置为GraphQLID
列表。
type Mutation {
updateUser (
id: ID!
email: String
password: String
firstName: String
lastName: String
# List of Permission IDs
permissions: [ID!]
): User
}
此方法的问题在于,这并未定义Permission
类型与ID
之间的关系。因此,我添加了“权限ID列表”注释。
另一种方法是创建专用输入类型,例如
input PermissionInput {
id: ID!
}
并在ID
权限参数中使用该代替updateUser
。但是,这并没有解决参考问题。
答案 1 :(得分:1)
不幸的是,我不能只添加评论,但我们以同样的方式解决问题 - 但为了确保数据形状的清晰性和一致性,我们使用特定的id字段。即我们会像这样定义输入:
type Mutation {
updateUser (
id: ID!
email: String
password: String
firstName: String
lastName: String
permissionIds: [ID!]
): User
}
非常基本的区别,但它明确区分输入和输出,每个字段名称都很直观,没有太多开销。