Skip to main content

Python DB-API and SQLAlchemy interface for GraphQL APIs.

Project description

graphql-db-api PyPI version main workflow codecov

A Python DB API 2.0 for GraphQL APIs

This module allows you to query GraphQL APIs using SQL.

SQLAlchemy support

This module provides a SQLAlchemy dialect.

from sqlalchemy.engine import create_engine

engine = create_engine('graphql://host:port/path?is_https=0')

Example Usage

Querying Connections

from sqlalchemy import create_engine
from sqlalchemy import text

# We use GraphQL SWAPI (The Star Wars API) c/o Netlify:
engine = create_engine('graphql://swapi-graphql.netlify.app/.netlify/functions/index')

with engine.connect() as connection:
    # Demonstration of requesting nested resource of homeworld
    # and then selecting fields from it
    for row in connection.execute(text("select name, homeworld__name from 'allPeople?include=homeworld'")):
        print(row)

Querying Lists

from sqlalchemy import create_engine
from sqlalchemy import text

engine = create_engine('graphql://pet-library.moonhighway.com/')

with engine.connect() as connection:
    for row in connection.execute(text("select id, name from 'allPets?is_connection=0'")):
        print(row)

Superset support

In order to use with Superset, install this package and then use the graphql protocol in the SQLAlchemy URI like: graphql://swapi-graphql.netlify.app/.netlify/functions/index. We install a db_engine_spec so Superset should recognize the driver.

Roadmap

  • Non-Connections top level
  • Path traversal (basic)
  • Path traversal (basic + nested)
  • Path traversal (list / connection)
  • Bearer Tokens in Authorization Header
  • Advanced Auth (e.g. with token refresh)
  • Passing Headers (e.g. Auth in other locations)
  • Filtering
  • Sorting
  • Relay Pagination

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

hakurei_sqlalchemy-graphqlapi-0.0.1.dev24.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file hakurei_sqlalchemy-graphqlapi-0.0.1.dev24.tar.gz.

File metadata

File hashes

Hashes for hakurei_sqlalchemy-graphqlapi-0.0.1.dev24.tar.gz
Algorithm Hash digest
SHA256 fc7c32709db61e9a9f9293282fd4255f80f2c62c7c4ea9bd58e65e08d704c2cb
MD5 a7819367f65db2d883d56f046462afe7
BLAKE2b-256 0b9454ef1f9f998dda78a49d559eee252d73cd5120066229abd45a042d4dffca

See more details on using hashes here.

File details

Details for the file hakurei_sqlalchemy_graphqlapi-0.0.1.dev24-py3-none-any.whl.

File metadata

File hashes

Hashes for hakurei_sqlalchemy_graphqlapi-0.0.1.dev24-py3-none-any.whl
Algorithm Hash digest
SHA256 6b29902ed4b077136671ebc5901d761feb027df9f770379a118278cd6c016986
MD5 e6031d2d6c906b2dc44b0b31b125a44c
BLAKE2b-256 a85e614ec3cba4ff59784a333284a015d445e238b56cc48ab20fb6cd47d559e7

See more details on using hashes here.

Supported by

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