Complete GraphQL query string generation for python.
Project description
GraphQL-Query
graphql_query is complete GraphQL query string builder for python. With graphql_query you can
- generate a GraphQL query string from a python class;
- 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;
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
andgraphql_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 have
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
graphql_query-1.0.3.tar.gz
(22.3 kB
view hashes)
Built Distribution
Close
Hashes for graphql_query-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25742ddccb112c4c541f99c80951b5743c299ea10d69f443400712cad811c981 |
|
MD5 | e84715726edb7306546c372a3f365d22 |
|
BLAKE2b-256 | d84692f6dc3e5546de8bd77da8bfae9a3652c8f1957bac2eb2a0693c364f61e5 |