GraphQL object property should be a list of strings
10,607
I figured out the answer. The key is to pass the graphql.GraphQLString
into graphql.GraphQLList()
The schema becomes:
var ColorType = new graphql.GraphQLObjectType({
name: 'colors',
fields: function() {
return {
name: { type: graphql.GraphQLString },
keys: { type: new graphql.GraphQLList(graphql.GraphQLString)
};
}
});
Using this query:
query { colors { name, keys } }
I get the desired results:
{
name: "colors",
keys: ["red", "blue"]
}
Author by
Mdd
Updated on July 29, 2022Comments
-
Mdd almost 2 years
How do I make a schema for an object property that is an array of strings in GraphQL? I want the response to look like this:
{ name: "colors", keys: ["red", "blue"] }
Here is my Schema
var keysType = new graphql.GraphQLObjectType({ name: 'keys', fields: function() { key: { type: graphql.GraphQLString } } }); var ColorType = new graphql.GraphQLObjectType({ name: 'colors', fields: function() { return { name: { type: graphql.GraphQLString }, keys: { type: new graphql.GraphQLList(keysType) }; } });
When I run this query I get an error and no data, the error is just
[{}]
query { colors { name, keys } }
However when I run a query to return just the name I get a successful response.
query { colors { name } }
How do I create a schema that returns an array of strings for when I query for keys?
-
davnicwil almost 7 yearsAwesome, thanks for taking the time to write your solution up. Saved me a bunch of time!
-
Germa Vinsmoke over 4 years@davnicwil Exactly!