Skip to main content

Generate a full (query+mutation) GraphQL schema from your SQLAlchemy Declarative Model Base.

Project description

sqlalchemy-graphql-schemagen

Generate a full (query/mutation) GraphQL Schema from your defined classes in a declarative_meta() Model.

Example

#!/usr/bin/env python
from flask import Flask
from flask_graphql import GraphQLView
from sqlalchemy import create_engine
from medgraphqlapi import generate_custom_column_docstrings
from sqlalchemy_graphql_schemagen import SQLAlchemyGraphQLSchemaGenerator

from medgraphqlapi.database_schema import Base as sa_base_declarative

################################
# SQLAlchemy Stuff
################################
sa_connection_string = "mssql+pyodbc://XXXXXXXXXXXX"

# Create the Engine
sa_engine = create_engine(sa_connection_string)

# Generate more useful columns' docstrings (ex.: type length, collation, ...)
generate_custom_column_docstrings(sa_base_declarative)

################################
# Build a GraphQL Schema from the SQLAlchemy Schema, using sqlalchemy_graphql_schemagen!
################################
graphql_schema = SQLAlchemyGraphQLSchemaGenerator(
    "ApiName",
    sa_base_declarative,
    sa_connection_string=sa_connection_string,
).get_graphene_schema()

################################
# Instantiate Flask App
################################
app = Flask(__name__)

# Plug GraphQLView
app.add_url_rule("/graphql",
                 view_func=GraphQLView.as_view("graphql",
                                               schema=graphql_schema,
                                               graphiql=True))

# That's it!
if __name__ == "__main__":
    app.run(host="0.0.0.0")

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

sqlalchemy-graphql-schemagen-1.0.6.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file sqlalchemy-graphql-schemagen-1.0.6.tar.gz.

File metadata

  • Download URL: sqlalchemy-graphql-schemagen-1.0.6.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.0

File hashes

Hashes for sqlalchemy-graphql-schemagen-1.0.6.tar.gz
Algorithm Hash digest
SHA256 52855725c0b3bae4d0e815635feaadac5120caadbd0fc687c6a1140c076c0fd8
MD5 6ddf9a861fcd386bbd4b7abc38cabe2c
BLAKE2b-256 00b7d4854ffca378a2a65d1444f84963703486ce744f3e57a3e0d01d5b3a45c3

See more details on using hashes here.

File details

Details for the file sqlalchemy_graphql_schemagen-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: sqlalchemy_graphql_schemagen-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.0

File hashes

Hashes for sqlalchemy_graphql_schemagen-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 359e2b3dd04cb2d4be30990a045cbd5c7806e266197b6d343fe707c7f79736a8
MD5 f971f7b22a4f52e2ddbb566053169666
BLAKE2b-256 42a24fc28cb0fcf9e96f7640fb0f4431c95fb97cf054596ccb0a0c526f885c67

See more details on using hashes here.

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