I have this input type and I would like to add a default Value to one of the fields. I want to add 0 to the value field inside the ExampleInput.

type ExampleType { value: Int another: String } type Mutation { example(input: ExampleInput): ExampleType } input ExampleInput { value: Int another: String } 

Any ideas?

2 Answers

It looks like the grammar allows default values on input object types, so you can declare

input ExampleInput { value: Int = 0 another: String isAvailable: Boolean = false } 

The spec is clear that default values exist and explains how they get used (first bullet under "Input Coercion").

(Whether any specific tooling supports this is probably variable: graphql.org had an informal version of the IDL for quite a while before it was actually in the spec, and I have the impression some libraries haven't caught up to the released spec yet.)

1

In a programmatic/object-based (or code-first) approach, you can set a default value like this for the InputObjectType:

 const exampleInput = new GraphQLInputObjectType({ name: "ExampleInput", fields: () => ({ value: { type: graphql.GraphQLInt, defaultValue: 0 }, another: { type: new GraphQLNonNull(graphql.GraphQLString) }, isAvailable: { type: graphql.GraphQLBoolean, defaultValue: false }, }), }); 

by using defaultValue keyword.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.