Mutation 的 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 types incorrectly used as an input type, or vice-versa? at graphql.kickstart.tools.SchemaParser.determineType(SchemaParser.kt:400) ~[graphql-java-tools-11.0.1.jar:na] at graphql.kickstart.tools.SchemaParser.determineInputType(SchemaParser.kt:417) ~[graphql-java-tools-11.0.1.jar:na] at graphql.kickstart.tools.SchemaParser.determineInputType(SchemaParser.kt:410) ~[graphql-java-tools-11.0.1.jar:na] at graphql.kickstart.tools.SchemaParser.createInputObject(SchemaParser.kt:179) ~[graphql-java-tools-11.0.1.jar:na] at graphql.kickstart.tools.SchemaParser.parseSchemaObjects(SchemaParser.kt:79) ~[graphql-java-tools-11.0.1.jar:na] at graphql.kickstart.tools.SchemaParser.makeExecutableSchema(SchemaParser.kt:112) ~[graphql-java-tools-11.0.1.jar:na] at graphql.kickstart.tools.boot.GraphQLJavaToolsAutoConfiguration.graphQLSchema(GraphQLJavaToolsAutoConfiguration.java:143) ~[graphql-kickstart-spring-boot-autoconfigure-tools-11.1.0.jar:na]

我不明白我错过了什么,对我来说,“IdInput”被很好地声明为 input 并且阅读了一些其他示例,它对我来说看起来是正确的,但显然不是。我试图将 che IdInput 声明为 type insted of input,但它显然不起作用。如何将输入对象列表传递到输入数组中? 如果您需要更多信息,我会添加它们,目前我只是混合一些声明以提出正确的声明,但没有成功。 预先感谢您的帮助!

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