{ "info": { "author": "Camille TOLSA", "author_email": "camille.tolsa@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP" ], "description": "# restae\n[![Build Status](https://travis-ci.org/tolsac/restae.svg?branch=master)](https://travis-ci.org/tolsac/restae) \n[![PyPI version](https://badge.fury.io/py/restae.svg)](https://badge.fury.io/py/restae)\n\nRestae is a framework to build REST APIs within the Google Cloud Platform App Engine. The structure of the framework is highly inspired by Django and Django REST Framework.\n\nPlease checkout official documentation to get more information https://restae.readthedocs.io/en/latest/\n\n\n\n import webapp2\n\n from google.appengine.ext import ndb\n\n from restae.handlers import APIModelHandler\n from restae.router import Router\n from restae.serializers import ModelSerializer\n\n\n class User(ndb.Model):\n email = ndb.StringProperty()\n first_name = ndb.StringProperty()\n last_name = ndb.StringProperty()\n\n\n class UserModelSerializer(ModelSerializer):\n class Meta:\n model = User\n fields = '__all__'\n\n\n class Handler(APIModelHandler):\n queryset = User.query()\n serializer_class = UserModelSerializer\n\n\n router = Router()\n router.register('user', Handler)\n\n app = webapp2.WSGIApplication(router.urls)\n\nWill produces those endpoints\n\n GET /user/ \\ list action\n GET /user \\ list action (idem without trailing slash)\n\n GET /user// \\ retrieve action\n GET /user/ \\ retrieve action (idem without trailing slash)\n\n POST /user/ \\ create action\n POST /user \\ create action (idem without trailing slash)\n\n PUT /user// \\ update action\n PUT /user/ \\ update action (idem without trailing slash)\n\n PATCH /user// \\ partial_update action\n PATCH /user/ \\ partial_update action (idem without trailing slash)\n\n DELETE /user// \\ destroy action\n DELETE /user/ \\ destroy action (idem without trailing slash)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/tolsac/restae", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "restae", "package_url": "https://pypi.org/project/restae/", "platform": "", "project_url": "https://pypi.org/project/restae/", "project_urls": { "Homepage": "http://github.com/tolsac/restae" }, "release_url": "https://pypi.org/project/restae/1.1.5/", "requires_dist": null, "requires_python": "", "summary": "REST Framwork for webapp2 & datastore applications", "version": "1.1.5" }, "last_serial": 4153000, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "ce3a8340a8cd19fe738fb604b42797ab", "sha256": "b0cddf87b43f5f9d96fe92927e027b0963cd9e1b13632efd408bce513d30bfb6" }, "downloads": -1, "filename": "restae-1.0.tar.gz", "has_sig": false, "md5_digest": "ce3a8340a8cd19fe738fb604b42797ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4890, "upload_time": "2018-07-06T13:05:11", "url": "https://files.pythonhosted.org/packages/8e/7f/84b2892d2bf2ab1a486a235e3e0248a4c43387141357409fcad254f55900/restae-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "6466b475ee696083fda00c3c56739990", "sha256": "9d4badf50d42f0aab3417238c804921da65a4e7f05fbec549bbcb9bc6d9799c9" }, "downloads": -1, "filename": "restae-1.1.tar.gz", "has_sig": false, "md5_digest": "6466b475ee696083fda00c3c56739990", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10293, "upload_time": "2018-07-31T14:28:43", "url": "https://files.pythonhosted.org/packages/bc/b3/e52bea82417b387c1f739ff4dbcfefa8006c0982e000373d71fb21e81555/restae-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "078b4b1d6d10ed715af7f8e5179e8663", "sha256": "278cdc0d9165a024cebe2fef2d4384ac55d5870492a35197edae8dbfe8835e2d" }, "downloads": -1, "filename": "restae-1.1.1.tar.gz", "has_sig": false, "md5_digest": "078b4b1d6d10ed715af7f8e5179e8663", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14748, "upload_time": "2018-08-03T08:33:55", "url": "https://files.pythonhosted.org/packages/41/99/340880dc6972542528505e81a8d7629f7e6ae0c99bc71b3a143deac6508e/restae-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "c45af1ff341cd079290281772d3baa85", "sha256": "a8dc11bb29e5cda2ebc04e8e3b11691aabfe61ebb427ec3f3d2a405947cdfd8e" }, "downloads": -1, "filename": "restae-1.1.2.tar.gz", "has_sig": false, "md5_digest": "c45af1ff341cd079290281772d3baa85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15721, "upload_time": "2018-08-08T11:12:45", "url": "https://files.pythonhosted.org/packages/c4/59/83e0c9c7b7a85e6b8453dd5a8cd395743525ea097a8a8493768c3d210dc3/restae-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "b0391d431b33cf4b4488c0f6bbfba2bc", "sha256": "64545cae4065202951ed3248a7645c3c997627bec8093df446726a1ef0901c50" }, "downloads": -1, "filename": "restae-1.1.3.tar.gz", "has_sig": false, "md5_digest": "b0391d431b33cf4b4488c0f6bbfba2bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15986, "upload_time": "2018-08-08T13:41:42", "url": "https://files.pythonhosted.org/packages/40/bf/16d8f16907684f032fda220fc2de14d4501247fa1bd9a0b0f51d5a03a8a4/restae-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "e4f70f0ee8672e95dc81548e9958d05a", "sha256": "f07609b2419f9b08262a634fb17d4377b74b112d8d4f22d47f9ebb4c53ac34e4" }, "downloads": -1, "filename": "restae-1.1.4.tar.gz", "has_sig": false, "md5_digest": "e4f70f0ee8672e95dc81548e9958d05a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16788, "upload_time": "2018-08-09T13:42:56", "url": "https://files.pythonhosted.org/packages/6e/7d/cca0bf5cf205b0a9c73465e0cb222f0821e2b1712a0a819353806727d2d4/restae-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "4441f2c78136056601c38d5488ae9d33", "sha256": "0e5b2b7b7fb7c507599fa3b94ef42888f7064ab0be0c4cd4f74e74370e704078" }, "downloads": -1, "filename": "restae-1.1.5.tar.gz", "has_sig": false, "md5_digest": "4441f2c78136056601c38d5488ae9d33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16788, "upload_time": "2018-08-09T13:46:13", "url": "https://files.pythonhosted.org/packages/0a/d4/d4e51cdd395298b2ee48d1b63b42b8452fdcf6db6ba89b7126976ced12c6/restae-1.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4441f2c78136056601c38d5488ae9d33", "sha256": "0e5b2b7b7fb7c507599fa3b94ef42888f7064ab0be0c4cd4f74e74370e704078" }, "downloads": -1, "filename": "restae-1.1.5.tar.gz", "has_sig": false, "md5_digest": "4441f2c78136056601c38d5488ae9d33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16788, "upload_time": "2018-08-09T13:46:13", "url": "https://files.pythonhosted.org/packages/0a/d4/d4e51cdd395298b2ee48d1b63b42b8452fdcf6db6ba89b7126976ced12c6/restae-1.1.5.tar.gz" } ] }