Metadata-Version: 2.1
Name: sqlalchemy-graphql-schemagen
Version: 1.0.2
Summary: Generate a full (query+mutation) GraphQL schema from your SQLAlchemy Declarative Model Base.
Home-page: https://github.com/flipbit03/sqlalchemy-graphql-schemagen
Author: flipbit03
Author-email: cadu.coelho@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: aniso8601 (>=7.0.0)
Requires-Dist: click (>=7.0)
Requires-Dist: flask (>=1.1.1)
Requires-Dist: flask-graphql (>=2.0.1)
Requires-Dist: graphene (>=2.1.8)
Requires-Dist: graphene-sqlalchemy (==2.2.2)
Requires-Dist: graphql-core (>=2.3.1)
Requires-Dist: graphql-relay (>=2.0.1)
Requires-Dist: graphql-server-core (>=1.2.0)
Requires-Dist: itsdangerous (>=1.1.0)
Requires-Dist: jinja2 (>=2.11.1)
Requires-Dist: markupsafe (>=1.1.1)
Requires-Dist: promise (>=2.3)
Requires-Dist: rx (>=1.6.1)
Requires-Dist: singledispatch (>=3.4.0.3)
Requires-Dist: six (>=1.14.0)
Requires-Dist: sqlalchemy (>=1.3.13)
Requires-Dist: werkzeug (>=1.0.0)

# sqlalchemy-graphql-schemagen

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


## Example

```py
#!/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")
```


