{ "info": { "author": "Slava Cheremushkin", "author_email": "slv0.chr@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP" ], "description": "# Star resty\nObject-oriented rest framework based on starlette, marshmallow and apispec.\n\n## Requirements\n\n* [Python] 3.7+\n* [Starlette] 0.12.0+\n* [Marshmallow] 3.0.0rc8+\n* [APISpec] 2.0.2+\n\n## Installation\n\n```console\n$ pip install star_resty\n```\n\n## Example\n\n```python\nfrom dataclasses import dataclass\nfrom typing import Optional\n\nfrom marshmallow import Schema, fields, post_load, ValidationError\nfrom starlette.applications import Starlette\nfrom starlette.responses import UJSONResponse\n\nfrom star_resty import Method, Operation, endpoint, json_schema, query, setup_spec\n\n\nclass EchoInput(Schema):\n a = fields.Int()\n\n\n@dataclass\nclass Payload:\n a: int\n s: Optional[str] = None\n\n\nclass PayloadSchema(Schema):\n a = fields.Int(required=True)\n s = fields.String()\n\n @post_load\n def create_payload(self, data, **kwargs):\n return Payload(**data)\n\n\napp = Starlette(debug=True)\n\n@app.exception_handler(ValidationError)\ndef register_error(request, e: ValidationError):\n return UJSONResponse(e.normalized_messages(), status_code=400)\n\n\n@app.route('/echo')\n@endpoint\nclass Echo(Method):\n meta = Operation(tag='default',\n description='echo')\n response_schema = EchoInput\n\n async def execute(self, query_params: query(EchoInput)):\n return query_params\n\n\n@app.route('/post', methods=['POST'])\n@endpoint\nclass Post(Method):\n meta = Operation(tag='default', description='post')\n\n async def execute(self, item: json_schema(PayloadSchema, Payload)):\n return {'a': item.a * 2, 's': item.s}\n\n\nif __name__ == '__main__':\n import uvicorn\n\n setup_spec(app, title='Example')\n uvicorn.run(app, port=8080)\n```\n\nOpen [http://localhost:8080/apidocs.json](http://localhost:8080/apidocs.json) to view generated openapi schema.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/slv0/start_resty", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "star-resty", "package_url": "https://pypi.org/project/star-resty/", "platform": "", "project_url": "https://pypi.org/project/star-resty/", "project_urls": { "Homepage": "https://github.com/slv0/start_resty" }, "release_url": "https://pypi.org/project/star-resty/0.0.10/", "requires_dist": null, "requires_python": ">=3.7", "summary": "The web framework", "version": "0.0.10" }, "last_serial": 5720065, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "485faf97f5324af0c1b1b3210b9d859c", "sha256": "08bd487f44abaa37207c5c3835a61279f5d181497410e210b33bd2ed6911a8c3" }, "downloads": -1, "filename": "star_resty-0.0.1.tar.gz", "has_sig": false, "md5_digest": "485faf97f5324af0c1b1b3210b9d859c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 8992, "upload_time": "2019-07-23T14:26:42", "url": "https://files.pythonhosted.org/packages/76/d9/ebf609759f0313023e12fe8587a61d3fcf0b9ea9afb5cf5aea6a57a5249e/star_resty-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "424abb8113c1752bd287cff0d85db0d5", "sha256": "a839824671e8afce97fac77154d05f6da4128c2060ed9a4abd5850dc93128fbd" }, "downloads": -1, "filename": "star_resty-0.0.10.tar.gz", "has_sig": false, "md5_digest": "424abb8113c1752bd287cff0d85db0d5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9876, "upload_time": "2019-08-23T10:40:38", "url": "https://files.pythonhosted.org/packages/e5/92/2ce59cfe2953ef271f5bd94fe1c4f8e799de826c638ef564c9f498408913/star_resty-0.0.10.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "0b13b4cd0bb1aa4c5a1451589720d221", "sha256": "d4a83a6868cfe24483886e994080e8d4c3e7bbf093c3a718ae3a9435ecf0649d" }, "downloads": -1, "filename": "star_resty-0.0.3.tar.gz", "has_sig": false, "md5_digest": "0b13b4cd0bb1aa4c5a1451589720d221", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 8979, "upload_time": "2019-07-23T14:59:24", "url": "https://files.pythonhosted.org/packages/c6/6b/1093153dfd482f03ad962895dc5cc2b4d735da3cfd5ef0dc1e3e17e90b75/star_resty-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "51555dc61c23082b4cb843d30728bfad", "sha256": "b05ee050b2919c69613fde992024b36812275855373b990974d3b9dde72e00ea" }, "downloads": -1, "filename": "star_resty-0.0.4.tar.gz", "has_sig": false, "md5_digest": "51555dc61c23082b4cb843d30728bfad", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9525, "upload_time": "2019-07-24T10:49:33", "url": "https://files.pythonhosted.org/packages/2f/5e/afc733cc5e1bea2d45119ce02a1b622a9d5f6a42e501f4d2d5cc8bf9ea72/star_resty-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "d600d0bd05eab3e2e01884f88129a945", "sha256": "80660fc8cbc14bf985d889dd8fcd8adf11a1ce2f9e29660053b155de721e3469" }, "downloads": -1, "filename": "star_resty-0.0.5.tar.gz", "has_sig": false, "md5_digest": "d600d0bd05eab3e2e01884f88129a945", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9516, "upload_time": "2019-07-24T12:36:39", "url": "https://files.pythonhosted.org/packages/de/29/97429fafafa32b1b60339f95e48c29a6caf1bf9830944936f0c00fadffa6/star_resty-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "6d70e35f76b751651103160b44c88a30", "sha256": "1f13a2a15a7c75881e73b19059b799904172c8d2c0f99c050eb570f7e16164c9" }, "downloads": -1, "filename": "star_resty-0.0.6.tar.gz", "has_sig": false, "md5_digest": "6d70e35f76b751651103160b44c88a30", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9671, "upload_time": "2019-07-25T08:06:26", "url": "https://files.pythonhosted.org/packages/5f/d5/d17a605f53191c431675846e958d2796fe85c65d35a733afa01541fec925/star_resty-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "f17dbfbe079258b196b408d6934e9cbe", "sha256": "89094a2b7ec2fc71f1157959d77cf55c2533cdf0cc849b6b149b3d18cab6d2dc" }, "downloads": -1, "filename": "star_resty-0.0.7.tar.gz", "has_sig": false, "md5_digest": "f17dbfbe079258b196b408d6934e9cbe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9712, "upload_time": "2019-08-13T10:38:27", "url": "https://files.pythonhosted.org/packages/73/60/32e7ac482bc99d6f6497bb44353d033d3ad15b0be0d337384d22cb506f97/star_resty-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "39308e4bf8111d16a0f99c17966310d2", "sha256": "e4a5c6f97feaedf5ce7a2532e55a10db57c76d28d8f76625b7c2d1c8bf415a38" }, "downloads": -1, "filename": "star_resty-0.0.8.tar.gz", "has_sig": false, "md5_digest": "39308e4bf8111d16a0f99c17966310d2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9727, "upload_time": "2019-08-14T09:11:21", "url": "https://files.pythonhosted.org/packages/91/1b/a86b6325d4f222cdd99cb5f99b78d93ef6e564a93127bff4f342d4506d9d/star_resty-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "b8e92da7c3682c4be80f5b0334b7bfc2", "sha256": "552d2f3df8d7ae29fbd817e491a5e91518db328f2ff2d30ece5968c170effeab" }, "downloads": -1, "filename": "star_resty-0.0.9.tar.gz", "has_sig": false, "md5_digest": "b8e92da7c3682c4be80f5b0334b7bfc2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9842, "upload_time": "2019-08-14T11:01:53", "url": "https://files.pythonhosted.org/packages/5f/c4/51bd1fbd47523d2326313dedec9c4f10b455fe8555c8516b14ae92eb979b/star_resty-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "424abb8113c1752bd287cff0d85db0d5", "sha256": "a839824671e8afce97fac77154d05f6da4128c2060ed9a4abd5850dc93128fbd" }, "downloads": -1, "filename": "star_resty-0.0.10.tar.gz", "has_sig": false, "md5_digest": "424abb8113c1752bd287cff0d85db0d5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9876, "upload_time": "2019-08-23T10:40:38", "url": "https://files.pythonhosted.org/packages/e5/92/2ce59cfe2953ef271f5bd94fe1c4f8e799de826c638ef564c9f498408913/star_resty-0.0.10.tar.gz" } ] }