简体   繁体   中英

GraphQL Input type declaration for Mutation

I'm new to GraphQL and after some coding I bumped into a problem with declaring an Input type for a Mutation. Here's my Schema:

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!
}

When I run my app, I get the error

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:j ar:na]

I can't understand what I'm missing, to me the "IdInput" is well declared as input and reading some other examples it looks correct to me, but it clearly isn't. I tried to declare che IdInput as type insted of input , but it obviously doesn't work. How can I pass a list of input objects into an input array? If you need more informations I'll add them, at the moment I'm just mixing some declaration to come up with the correct one, with no success. Thank you in advance for your help!

Find out this was a misleading error, since the GraphQL schema couldn't fetch with the Mutation Resolver's signature method. Instead of pointing out that part, it kept to break in the GraphQL Schema declaration. Once declared the signature method accordingly to the Schema, everything worked out like a charm. Hope it may help someone with this misleading error handling.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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