Giter VIP home page Giter VIP logo

endpoints-proto-datastore's Introduction

endpoints-proto-datastore

This library is intended to be used with the Python version of Google Cloud Endpoints. If you'd like to learn more about Google Cloud Endpoints, please visit our documentation. To run each of these samples, you should include the endpoints_proto_datastore folder included with this project.

By extending the functionality provided by ndb.Model class and the endpoints library, this library allows you to directly interact with model entities in your API methods rather than ProtoRPC requests. For example, instead of:

  @endpoints.method(MyModelMessage, MyModelMessage,
                    path='mymodel', http_method='POST',
                    name='mymodel.insert')
  def InsertModel(self, request):
    my_model = MyModel(attr1=request.attr1, attr2=request.attr2, ...)
    transformed_model = DoSomething(my_model)
    return MyModelMessage(attr1=transformed_model.attr1,
                          attr2=transformed_model.attr2, ...)

we can directly use the entity in the request:

  @MyModel.method(path='mymodel', http_method='POST',
                  name='mymodel.insert')
  def InsertModel(self, my_model):
    return DoSomething(my_model)

without ever even having to define a ProtoRPC message class!

Get started with the examples at: http://endpoints-proto-datastore.appspot.com/

Project Setup, Installation, and Configuration

To use this library in your App Engine application you can

  • Download the endpoints_proto_datastore library and unzip it in the root of your App Engine application. For example, on a Unix based machine:

    ($GAE_PROJECT_ROOT)$ wget https://endpoints-proto-datastore.googlecode.com/files/endpoints_proto_datastore.zip
    ($GAE_PROJECT_ROOT)$ unzip -q endpoints_proto_datastore.zip
    ($GAE_PROJECT_ROOT)$ rm -f endpoints_proto_datastore.zip
    
  • Alternatively you can stay up to date by adding this repository to your project as a git submodule:

    ($YOUR_GIT_ROOT)$ git submodule add https://github.com/GoogleCloudPlatform/endpoints-proto-datastore
    

    This will create the entire project in the endpoints-proto-datastore folder in your project. Since Python packages require __init__.py files for imports to work and the root of this project is not meant to be a Python package, you'll need to add endpoints-proto-datastore to your Python import path.

    The simplest way to do this is to add the following lines to your appengine_config.py file (or create the file if it doesn't yet exist):

    import os
    import sys
    
    ENDPOINTS_PROJECT_DIR = os.path.join(os.path.dirname(__file__),
                                         'endpoints-proto-datastore')
    sys.path.append(ENDPOINTS_PROJECT_DIR)
    

    Note: If the App Engine project stored in your git repository is not at the root, you may need to add a symlink to the endpoints-proto-datastore/endpoints_proto_datastore directory and put it at the root of your App Engine project.

To install App Engine visit the Development Environment page.

Features, Questions and Support

  • To request a feature, report a bug, or request a new sample or piece of documentation; please file an issue.
  • For troubleshooting issues or asking general questions, please ask a question on StackOverflow using the endpoints-proto-datastore tag.

Testing

All tests are wrapped into the endpoints_proto_datastore_test_runner.py module. To run the tests, simply execute

python $PATH_TO_TEST_RUNNER/endpoints_proto_datastore_test_runner.py

This test runner assumes that you have App Engine SDK tools on your path and will use the location of the dev_appserver.py script to determine the location of the SDK. For example, on a Unix based system it would be equivalent to:

dirname `readlink \`which dev_appserver.py\``

Contributing changes

Licensing

endpoints-proto-datastore's People

Contributors

dhermes avatar fredsa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.