繁体   English   中英

GraphQL 突变的输入类型声明

[英]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 声明为inputtype ,但它显然不起作用。 如何将输入对象列表传递到输入数组中? 如果您需要更多信息,我会添加它们,目前我只是混合一些声明以提出正确的声明,但没有成功。 预先感谢您的帮助!

发现这是一个误导性错误,因为 GraphQL 模式无法使用 Mutation Resolver 的签名方法获取。 它没有指出那部分,而是在 GraphQL 架构声明中不断中断。 一旦根据 Schema 声明了签名方法,一切都会顺利进行。 希望它可以帮助某人处理这种误导性的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM