Creating GraphQL Input Types with Express-GraphQL
With GraphQL, we can create scalar types as we do with object types and other compound data types.
In this article, we’ll look at how to create GraphQL input types with the GraphQLInputObjectType
constructor.
GraphQLInputObjectType Constructor
We can use the GraphQLInputObjectType
constructor to create a new input type.
To do this, we pass in an object to the GraphQLInputObjectType
constructor with the name
property to set the name of our input type, and then a fields
object with the field names as the keys and the values are objects with the type
property to specify the types of the fields.
To specify a required field, we use the GraphQLNonNull
constructor. Also, we can specify a default value by specifying a value for the defaultValue
property.
For example, we can specify a mutation as follows:
const express = require('express');
const graphqlHTTP = require('express-graphql');
const graphql = require('graphql');class Person {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}const PersonInputType = new graphql.GraphQLInputObjectType({
name: 'PersonInput',
fields: {…