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
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,
@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
endpoints_proto_datastorelibrary and unzip it in the root of your App Engine application. For example, on a Unix based machine:
($GAE_PROJECT_ROOT)$ wget "https://github.com/GoogleCloudPlatform/"` `"endpoints-proto-datastore/blob/"` `"zipfile-branch/"` `"endpoints_proto_datastore.zip?raw=true" \ -O endpoints_proto_datastore.zip ($GAE_PROJECT_ROOT)$ unzip endpoints_proto_datastore.zip ($GAE_PROJECT_ROOT)$ rm endpoints_proto_datastore.zip
Alternatively you can stay up to date by adding this repository to your project as a
($YOUR_GIT_ROOT)$ git submodule add https://github.com/GoogleCloudPlatform/endpoints-proto-datastore
This will create the entire project in the
endpoints-proto-datastorefolder in your project. Since Python packages require
__init__.pyfiles 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-datastoreto your Python import path.
The simplest way to do this is to add the following lines to your
appengine_config.pyfile (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
gitrepository is not at the root, you may need to add a symlink to the
endpoints-proto-datastore/endpoints_proto_datastoredirectory 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
All tests are wrapped into the
module. To run the tests, simply execute
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
dirname `readlink \`which dev_appserver.py\``
- See CONTRIB.md
To create docs for a contributed example, use
pycco. For example: