[英]GraphQL Input type declaration for Mutation
我是 GraphQL 的新手,经过一些编码后,我遇到了为 Mutation 声明输入类型的问题。 这是我的架构:
type Test {
id: ID!
label: String!
}
extend type Query {
test(id : ID!): Test
listTests (where: myWhereCondition, orderBy: myOrderByCondition): [Test!]!
}
extend type Mutation {
createTest(label: String!, testTypes: TestTypesInput): Test!
}
input TestTypesInput {
testTypes: [IdInput]
}
input IdInput {
id: ID!
}
当我运行我的应用程序时,出现错误
Caused by: graphql.kickstart.tools.SchemaError: Expected type 'IdInput' to be a GraphQLInputType, but it wasn't, Was a type only permitted for object 类型错误地用作输入类型? 或相反亦然。 在 graphql.kickstart.tools.SchemaParser.determineType(SchemaParser:kt.400) ~[graphql-java-tools-11.0.1:jar.na] 在 graphql.kickstart.tools.SchemaParser.determinePaper4rs(SchemaParser.determinePaper4rs) ~[graphql-java-tools-11.0.1:jar.na] 在 graphql.kickstart.tools.SchemaParser.determineInputType(SchemaParser:kt.410)~[graphql-java-tools-11.0.1:jar.na] 在graphql.kickstart.tools.SchemaParser.createInputObject(SchemaParser:kt.179)~[graphql-java-tools-11.0.1:jar.na] 在 graphql.kickstart.tools.SchemaParser.parseSchemaObjects)~[graphql-java-tools-11.0.1:jar.na] [graphql-java-tools-11.0.1:jar.na] 在 graphql.kickstart.tools.SchemaParser.makeExecutableSchema(SchemaParser:kt.112) ~[graphql-java-tools-11.0.1:jar8184] 在 486067 .kickstart.tools.boot.GraphQLJavaToolsAutoConfiguration.graphQLSchema(GraphQLJavaToolsAutoConfiguration:java.143)~[graphql-kickstart-spring-boot-autoconfigure-tools-11.1.0:j ar:na]
我不明白我错过了什么,对我来说,“IdInput”被很好地声明为input
并阅读了一些其他示例,它对我来说看起来是正确的,但显然不是。 我试图将 che IdInput 声明为input
的type
,但它显然不起作用。 如何将输入对象列表传递到输入数组中? 如果您需要更多信息,我会添加它们,目前我只是混合一些声明以提出正确的声明,但没有成功。 预先感谢您的帮助!
发现这是一个误导性错误,因为 GraphQL 模式无法使用 Mutation Resolver 的签名方法获取。 它没有指出那部分,而是在 GraphQL 架构声明中不断中断。 一旦根据 Schema 声明了签名方法,一切都会顺利进行。 希望它可以帮助某人处理这种误导性的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.