在编写查询时,我可以在任何字段上定义解析器,并且该字段的值将由其解析程序确定,而不管查询深度如何 .
但是在编写突变时,我似乎只能在根级别定义解析器 . 将解析方法添加到我的args或输入类型中的字段似乎没有任何影响 .
在突变中处理嵌套输入的最佳方法是什么?
你的突变中的嵌套输入是什么意思? 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 for createCompany变异 . 然后,我将使用createUser解析器中的CreateCompanyInput将整个CreateUserInput作为输入参数 . 我可以应用交易,因为我将创建两个新记录等 . 如果你的意思是别的,不确定它是否是嵌套输入的意思 . 请告诉我:)
1 回答
你的突变中的嵌套输入是什么意思? GraphQL输入类型没有解析器 . 使用解析器,您只需确定如何获取结果 . 如果您想要嵌套输入,例如我想与公司一起创建用户 . 然后我将在SDL中定义CreateUserInput CreateCompanyInput类型,例如这样
这样我基本上可以嵌套参数,并且可以实现更复杂的突变 . 另外,如果我需要突变,我可以重新使用CreateCompanyInput for createCompany变异 . 然后,我将使用createUser解析器中的CreateCompanyInput将整个CreateUserInput作为输入参数 . 我可以应用交易,因为我将创建两个新记录等 . 如果你的意思是别的,不确定它是否是嵌套输入的意思 . 请告诉我:)