Graphql Query 1.4.0 | GitLocker.com Product

graphql-query 1.4.0

Last updated:

0 purchases

graphql-query 1.4.0 Image
graphql-query 1.4.0 Images

Free

Languages

Categories

Add to Cart

Description:

graphqlquery 1.4.0

graphql-query





graphql_query is a complete Domain Specific Language (DSL) for GraphQL query in Python. With this package
you can to

generate a correct GraphQL query string from a python classes;
use and share similar Arguments, Variables and e.t.c between different queries;
easily add new fields to your query;
add Fragments and Directives to queries;
generate graphql_query classes from pydantic data-model;

The documentation for graphql_query can be found at https://denisart.github.io/graphql-query/.
Quickstart
Install with pip
pip install graphql_query

Simple query
Code for the simple query
{
hero {
name
}
}

it is
from graphql_query import Operation, Query

hero = Query(name="hero", fields=["name"])
operation = Operation(type="query", queries=[hero])

print(operation.render())
"""
query {
hero {
name
}
}
"""

The render method for the graphql_query.Operation object
just returns the final string with a query. Inside the fields array of the graphql_query.Query object
you can use

str (a field name);
object of graphql_query.Field type;
graphql_query.Fragment and graphql_query.InlineFragment.

Arguments, Variables and Directives
For generation of the following query
query Hero($episode: Episode, $withFriends: Boolean!) {
hero(episode: $episode) {
name
friends @include(if: $withFriends) {
name
}
}
}

we can use the following python code
from graphql_query import Argument, Directive, Field, Operation, Query, Variable

episode = Variable(name="episode", type="Episode")
withFriends = Variable(name="withFriends", type="Boolean!")

arg_episode = Argument(name="episode", value=episode)
arg_if = Argument(name="if", value=withFriends)

hero = Query(
name="hero",
arguments=[arg_episode],
fields=[
"name",
Field(
name="friends",
fields=["name"],
directives=[Directive(name="include", arguments=[arg_if])]
)
]
)
operation = Operation(
type="query",
name="Hero",
variables=[episode, withFriends],
queries=[hero]
)
print(operation.render())
"""
query Hero(
$episode: Episode
$withFriends: Boolean!
) {
hero(
episode: $episode
) {
name
friends @include(
if: $withFriends
) {
name
}
}
}
"""

You can find other examples in the documentation.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.