【发布时间】:2019-02-07 21:57:23
【问题描述】:
在编写查询时,我可以在任何字段上定义解析器,并且该字段的值将由其解析器确定,而与查询深度无关。
但是,在编写突变时,我似乎只能在根级别定义解析器。向我的 args 或输入类型中的字段添加解析方法似乎没有任何影响。
在突变中处理嵌套输入的最佳方法是什么?
【问题讨论】:
标签: graphql graphql-js
在编写查询时,我可以在任何字段上定义解析器,并且该字段的值将由其解析器确定,而与查询深度无关。
但是,在编写突变时,我似乎只能在根级别定义解析器。向我的 args 或输入类型中的字段添加解析方法似乎没有任何影响。
在突变中处理嵌套输入的最佳方法是什么?
【问题讨论】:
标签: graphql graphql-js
突变中的嵌套输入是什么意思? GraphQL 输入类型没有解析器。使用解析器,您只是在确定如何获取结果。如果您想要嵌套输入,例如例如,我也想与公司一起创建用户。然后我将在 SDL 中定义 CreateUserInput CreateCompanyInput 类型,例如这样
input CreateCompanyInput {
name: String!
type: CompanyEnum!
}
input CreateUserInput {
username: String!
firstname: String!
lastname: String!
company: CreateCompanyInput!
}
type Mutation {
createUser(input: CreateUserInput!): User
}
这样我基本上是嵌套参数并且可以实现更复杂的突变。此外,如果我需要突变,我可以将CreateCompanyInput 重复用于createCompany 突变。然后,即使在 createUser 解析器中使用 CreateCompanyInput 作为输入参数,我也会拥有整个 CreateUserInput。我可以应用事务,因为我将创建两条新记录等。如果您的意思是其他意思,则不确定这是否是您所说的嵌套输入。请告诉我:)
【讨论】:
mutation CreateUser { createUser(input: { ... }) } 的.graphql 文件会是什么样子?