Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

https://travis-ci.org/graphql-python/graphene-gae.svg?branch=master https://coveralls.io/repos/github/graphql-python/graphene-gae/badge.svg?branch=master https://img.shields.io/pypi/v/graphene-gae.svg

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 Query(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:

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

History

1.0.7 (TBD)

1.0.6 (2016-12-06)

  • Fixed DeadlineExceededError import swo connections properly handle timeouts

1.0.5 (2016-11-23)

1.0.3 (2016-11-22)

1.0.2 (2016-10-20)

  • Added _handle_graphql_errors hook to GraphQLHandler

1.0.1 (2016-09-28)

  • Added missing support for StructuredProperty

1.0 (2016-09-26)

  • Upgraded to Graphene 1.0

0.1.9 (2016-08-17)

  • Each NdbObject now exposes an ndbId String field that maps to the entity’s key.id()

  • Added ndb boolean argument to NdbKeyStringField so now when looking at KeyProperty we can fetch either global GraphQL id or the NDB internal id.

0.1.8 (2016-08-16)

  • Made connection_from_ndb_query resilient to random ndb timeouts

0.1.7 (2016-06-14)

0.1.6 (2016-06-10)

0.1.5 (2016-06-08)

0.1.4 (2016-06-02)

  • NdbConnectionField added arguments that can be used in quert:
    • keys_only - to execute a keys only query

    • batch_size - to control the NDB query iteration batch size

    • page_size - control the page sizes when paginating connection results

  • Added support for LocalStructuredProperty.
    • Given a property ndb.LocalStructuredType(Something) it will automatically map to a Field(SomethingType) - SomethingType has to be part of the schema.

    • Support for repeated and required propeties.

0.1.3 (2016-05-27)

  • Added graphene_gae.webapp2.GraphQLHandler - a basic HTTP Handler to process GraphQL requests

0.1.1 (2016-05-25)

  • Updated graphene dependency to latest 0.10.1 version.
    • NdbConnection.from_list now gets context as parameter

0.1.0 (2016-05-11)

  • First release on PyPI.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphene_gae-2.0.dev2017073101.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

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

graphene_gae-2.0.dev2017073101-py2.py3-none-any.whl (15.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file graphene_gae-2.0.dev2017073101.tar.gz.

File metadata

File hashes

Hashes for graphene_gae-2.0.dev2017073101.tar.gz
Algorithm Hash digest
SHA256 aedadd3768f152d1a2da69ad6866b90035a035e4dba3ec620a292e9ebf13c1bb
MD5 f161b8837e3197f84804d0be1119354a
BLAKE2b-256 10b4920c4dd49511c8898e9bdb8550675e5acaf26f8a8b389d731238df867579

See more details on using hashes here.

File details

Details for the file graphene_gae-2.0.dev2017073101-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for graphene_gae-2.0.dev2017073101-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2522c729911fd863e6c0ab39bc49717e8385307a1b2f6ab91b31c10e25bbc3b1
MD5 80012ca1b3aee1138f08b0bfdc1cc9bf
BLAKE2b-256 3f470e689760ba6991c5dd5d9b5d68ef25f6222149c1d912b036dd920aa0ae50

See more details on using hashes here.

Release history Release notifications | RSS feed

2.0.0

1 file

This release

2.0.dev2017073101 This release

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

1 file

1.0.4

1 file

1.0.3

1 file

1.0.2

1 file

1.0.1

1 file

1.0

1 file

Supported by

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