GraphQL Query Generator is an interesting library brought to you by the IBM team, which’s the main idea is to allow users to generate randomized GraphQL queries from any given GraphQL schema.
The first thought that comes to your mind might be:
“Why I may ever want a bunch of randomized queries?”
but giving it a second thought it might be quite useful. The team behind the GraphQL Query Generator suggested two basic use-cases for their library:
Engineering - when operating a GraphQL service you might find this library useful for:
The library provides two functions for generating random GraphQL queries, both expecting a GraphQL schema, as well as specific instructions provided in configuration object as an input:
getRandomQuery(schema: GraphQLSchema, config: Configuration)- this function produces a random query from the given schema, considering configuration passed as an input,
getRandomMutation(schema: GraphQLSchema, config: Configuration)- that produces a random mutation from the given schema, considering passed configuration.
The configuration object accepts a set of predefined properties i.e.:
maxDepth- that defines the maximum depths of the query/mutation to generate,
argumentsToIgnore- in which you can list arguments names that should be ignored,
considerInterfaces- which a signal for the generator that it should create queries containing interfaces,
considerUnions- that creates queries that contain unions etc.
The full list of available properties is available in the GraphQL Query Generator docs.
GraphQL Query Generator is a great addition to the already broad spectrum of GraphQL tools. Its a relatively new library that is worth experimenting with as maybe you could find some other innovative ways it could be used by the GraphQL community.
The GraphQL Editor is a supportive tool for both advanced GraphQL users as well as those taking their first steps with GraphQL APIs. Our all-in-one development environment for GraphQL will help you build, manage & deploy your GraphQL API much faster thanks to dozens of built-in micro features. Its graphical interface will also fix communication within your product team. Visualization is the key!