Skip to main content

A module used to generate querry statements and perform data fetching via GraphQL

Project description

GQLA - GraphQL Assistant

GQLA provides an easy way to fetch data from GraphQL api on server side.

Navigation:

Intro

GQLA is published under MIT license and doesn't provide any warranty. It is single person developed package.
No roadmap No warranty No consistency No active and fast responces to dev

Usage

WARNING : watch carefull about your recursion depth; nodes and edges also counted as recursion level;

Example of basic usage bellow:

from gqla import GQLA

# Create a list of ignored fields (recommended values)
ignore = ['pageInfo', 'deprecationReason', 'isDeprecated', 'cursor', 'parent1', 'id']

# Create a list of fields you only want to retrieve
only = ['edges', 'node', 'code', 'name', 'StarObject', 'PlanetObject', 'orbitals']

# Create a GQLA class instance with provided settings
helper = GQLA('solar', url='localhost', port='8080', usefolder=True, only=only, ignore=ignore, recursive_depth=5)

# Set output visualization to "pretty" json
helper._pretty = True

# Gather service structure
await helper.introspection()

# Request 'allStellar' query with arguments (filters:{not: {objectType: planet}}, first: 5) and save to json file
await helper.query_one('allStellar', usefolder=True, filters={'not': {'objectType': 'planet'}}, first='5')

# Request 'allStellar' query with fields in 'only' list and arguments (first: 1) without saving to file
result = await helper.query_one('allStellar', usefolder=False, only_fields=True, first='1')

# Print result of execution
print(result)

Installation

PIP

  • pip install gqla

SETUP

  • python setup.py install

Requirements:

  • r/w access if using folder to save infrastucture
  • python >= 3.5
  • aiohttp

Structure

Classes
  • statics - static data like intrispection query and url/query templates
  • GQLStorage - Storage package to contain and parse GraphQL data types
  • VerticalStorage - package to share data between vertical structures
  • Generator - Generator package used to create queries from model
  • GQLModel - Model package containing GraphQL service data
  • abstracts - package containing abstracts of all classes
  • GQQStorage - Queries storage package
  • Executor - Executor package
  • GQQuery - Queries package
  • GQLA - main class
Parameters:
  • usefolder - directive to use folder to store data such as service model, querries and returned data
  • name - name used to define service; required to create folders if usefolder is set
  • _subpid - number of subtask running; No actual usage besides logging
  • ignore - list of statements to ignore during querries generation
  • only - list of statements to keep during querries generation
  • recursive_depth - recursion depth limitation;
  • port - port of GraphQL service
  • url - url of GraphQL service
Methods

Notice that async meant to execute in execution loop;

  • introspection - method to gather information about service;async
  • query_one - method to generate and execute querries;async

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gqla-1.1.2.tar.gz (15.1 kB view hashes)

Uploaded Source

Built Distribution

gqla-1.1.2-py3-none-any.whl (18.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page