Graphene PynamoDB integration
Project description
Please read UPGRADE-v1.0.md to learn how to upgrade to Graphene 1.0.
Graphene-PynamoDB
A PynamoDB integration for Graphene.
Installation
For instaling graphene, just run this command in your shell
pip install git+git://github.com/yfilali/graphql-pynamodb
Examples
Here is a simple PynamoDB model:
from uuid import uuid4
from pynamodb.attributes import UnicodeAttribute
from pynamodb.models import Model
class User(Model):
class Meta:
table_name = "my_users"
host = "http://localhost:8000"
id = UnicodeAttribute(hash_key=True)
name = UnicodeAttribute(null=False)
if not User.exists():
User.create_table(read_capacity_units=1, write_capacity_units=1, wait=True)
User(id=str(uuid4()), name="John Snow").save()
User(id=str(uuid4()), name="Daenerys Targaryen").save()
To create a GraphQL schema for it you simply have to write the following:
import graphene
from graphene_pynamodb import PynamoObjectType
class UserNode(PynamoObjectType):
class Meta:
model = User
interfaces = (graphene.Node,)
class Query(graphene.ObjectType):
users = graphene.List(UserNode)
def resolve_users(self, args, context, info):
return User.scan()
schema = graphene.Schema(query=Query)
Then you can simply query the schema:
query = '''
query {
users {
name
}
}
'''
result = schema.execute(query)
To learn more check out the following examples:
Full example: Flask PynamoDB example
Contributing
After cloning this repo, ensure dependencies are installed by running:
python setup.py install
After developing, the full test suite can be evaluated by running:
python setup.py test # Use --pytest-args="-v -s" for verbose mode
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
graphene-pynamodb-0.1.tar.gz
(9.7 kB
view hashes)