simple_graphql_query_builder 0.2.2 copy "simple_graphql_query_builder: ^0.2.2" to clipboard
simple_graphql_query_builder: ^0.2.2 copied to clipboard

A simple GraphQl query builder to generate query as String, used together with the package `graphql`

A Simple Query builder for GraphQl API calls.

Features #

Usage #

Sample usage #

final query = QueryBuilder(
    queryName: 'HeroAndFriends',
    name: 'hero',
    type: QueryBuilderType.query,
    variables: [
        QueryVariable(name: 'episode', type: 'Episode!', defaultValue: 'JEDI'),
    ],
    fields: {
        'name': null,
        'friends': {
            'name': null,
        }
    },
).build();

Will result in the following query

query HeroNameAndFriends($episode: Episode = JEDI) {
  hero(episode: $episode) {
    name
    friends {
      name
    }
  }
}

Note

You can you .toJson() or .toMap() from library such as json_serializable for fields, for example:

class Hero {
  final String? name;

  const Hero({this.name});

  Map<String, dynamic> toJson() {
    return {
      'name': this.name,
    }
  }
}
final query = QueryBuilder(
    queryName: 'HeroAndFriends',
    name: 'hero',
    type: QueryBuilderType.query,
    variables: [
        QueryVariable(name: 'episode', type: 'Episode!', defaultValue: 'JEDI'),
    ],
    fields: Hero(name: 'xyz').toJson(),
).build();

Usage with graphql package #

query is derived from QueryBuilder from the example above

final QueryResult result = await client.query(query);

Arguments #

QueryVariable #

Name In Example Query Requirement Note
name $episode Must match GraphQl schema
type Episode Must match GraphQl schema If required, use Episode!
schemaName episode Must match GraphQl schema Default value is derived from param name
defaultValue JEDI None If empty, nothing happens

QueryBuilderType #

Name Desc
query Use for query calls
mutation Use for mutation calls

QueryBuilder #

Name In Example Query Requirement Note
queryName HeroNameAndFriends Can be anything you want Default value will be taken from param name
name hero Must match the GraphQl
type query Must be type QueryBuilderType Refer to QueryBuilderType
variables ($episode: Episode = JEDI) and (episode: $episode) Must be type QueryVariable Refer to QueryVariable
fields name friends { name } Map of fields Can use together with toJson()
3
likes
160
points
20
downloads

Publisher

unverified uploader

Weekly Downloads

A simple GraphQl query builder to generate query as String, used together with the package `graphql`

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

meta

More

Packages that depend on simple_graphql_query_builder