Skip to main content

Graphene GAE Integration

Project description

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 1.0 version) please check out the Graphene Upgrade Guide <https://github.com/graphql-python/graphene/blob/master/UPGRADE-v1.0.md>

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.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.

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

graphene_gae-1.0.7.tar.gz (25.8 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-1.0.7-py2.py3-none-any.whl (14.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file graphene_gae-1.0.7.tar.gz.

File metadata

  • Download URL: graphene_gae-1.0.7.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for graphene_gae-1.0.7.tar.gz
Algorithm Hash digest
SHA256 2f964d5ebc17a867e7d4e0c39a2421462a104a409fd066c10e7fd70ea7c4fb61
MD5 50c00e5b5d5618b903e075e4b84c938b
BLAKE2b-256 44c62174c2d4fc19293e91ce318a307855ef344d33e77c0025aa1f9de6cb6ff8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for graphene_gae-1.0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ed41a2af965c5969a0ba8638aeaf50d8bdb39784f01ef3e0837f59171902cbfe
MD5 e2970b3c34b20831a29864185592cd24
BLAKE2b-256 dc86f6093e7d31642bb7389b7d4db5323002dd9830f9c131d5068d79e68db5b1

See more details on using hashes here.

Supported by

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