Skip to content
This repository was archived by the owner on Sep 6, 2022. It is now read-only.

graphql-python/graphene-gae

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7cf364e · Sep 6, 2022
May 11, 2016
Aug 1, 2017
Sep 27, 2018
Sep 27, 2018
May 11, 2016
Feb 1, 2018
May 11, 2016
May 17, 2016
May 11, 2016
May 17, 2016
Feb 23, 2017
May 11, 2016
May 27, 2016
May 27, 2016
Sep 6, 2022
Feb 23, 2017
Jul 27, 2017
May 11, 2016
Jun 6, 2019
May 11, 2016

Repository files navigation

Graphene GAE (deprecated!)

⚠️ This repository is deprecated due to lack of maintainers. If you're interested in taking over let us know via the Graphene Slack

A Google AppEngine integration library for Graphene

Upgrade Notes

If you're upgrading from an older version (pre 2.0 version) please check out the Graphene Upgrade Guide.

Installation

To install Graphene-GAE on your AppEngine project, go to your project folder and runthis command in your shell:

pip install graphene-gae -t ./libs

This will install the library and its dependencies to the libs folder under your projects root - so the dependencies get uploaded withyour GAE project when you publish your app.

Make sure the libs folder is in your python path by adding the following to your `appengine_config.py`:

import sys

for path in ['libs']:
    if path not in sys.path:
        sys.path[0:0] = [path]

Examples

Here's a simple GAE model:

class Article(ndb.Model):
    headline = ndb.StringProperty()
    summary = ndb.TextProperty()
    text = ndb.TextProperty()

    author_key = ndb.KeyProperty(kind='Author')

    created_at = ndb.DateTimeProperty(auto_now_add=True)
    updated_at = ndb.DateTimeProperty(auto_now=True)

To create a GraphQL schema for it you simply have to write the following:

import graphene
from graphene_gae import NdbObjectType

class ArticleType(NdbObjectType):
    class Meta:
        model = Article

class QueryRoot(graphene.ObjectType):
    articles = graphene.List(ArticleType)

    @graphene.resolve_only_args
    def resolve_articles(self):
        return Article.query()

schema = graphene.Schema(query=QueryRoot)

Then you can simply query the schema:

query = '''
    query GetArticles {
      articles {
        headline,
        summary,
        created_at
      }
    }
'''
result = schema.execute(query)

To learn more check out the following examples:

Contributing

After cloning this repo, ensure dependencies are installed by running:

make deps
make install

Make sure tests and lint are running:

make test
make lint