{ "info": { "author": "weaming", "author_email": "garden.yuen@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# sanic json\n\nA thin wrapper on sanic web framework to help writting JSON API.\n\nRecommond use [json-api](https://github.com/weaming/json-api) instead. It's a abstraction library of this library.\n\n```\npip3 install sanic-json\n```\n\n## Exmaple\n\nfile `api/random.py`\n\n```python\ndef obj_to_dict(obj):\n if not obj or isinstance(obj, (str, int, float)):\n return obj\n elif isinstance(obj, list):\n return [obj_to_dict(x) for x in obj]\n elif isinstance(obj, dict):\n return {k: obj_to_dict(v) for k, v in obj.items()}\n else:\n return {k: obj_to_dict(v) for k, v in obj.__dict__.items()}\n\n\n# the wrapper will get the args and kwargs value from the `request`\nasync def random_pohoto(req, count=10):\n res = api.photo.random(count=count)\n return {\"data\": obj_to_dict(res)}\n```\n\nfile `app.py`\n\n```python\nfrom sanic import Sanic\nfrom sanic_json import get_json_route\nfrom api.random import random_pohoto\n\napp = Sanic()\njson_route = get_json_route(app)\n\njson_route(\"/api/random\", random_pohoto)\n\n\nif __name__ == \"__main__\":\n import os\n\n debug = bool(os.getenv(\"DEBUG\"))\n # hot reload in next release: https://github.com/channelcat/sanic/issues/168\n app.run(host=\"0.0.0.0\", port=8000, debug=debug)\n```\n\n\n", "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/weaming/sanic-json", "keywords": "sanic json api", "license": "", "maintainer": "", "maintainer_email": "", "name": "sanic-json", "package_url": "https://pypi.org/project/sanic-json/", "platform": "", "project_url": "https://pypi.org/project/sanic-json/", "project_urls": { "Bug Reports": "https://github.com/weaming/sanic-json", "Homepage": "https://github.com/weaming/sanic-json", "Source": "https://github.com/weaming/sanic-json" }, "release_url": "https://pypi.org/project/sanic-json/0.1.13/", "requires_dist": null, "requires_python": "", "summary": "Sanic framework thin wapper to write JSON API", "version": "0.1.13" }, "last_serial": 5544758, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "416741a144a609987e646015f4a4822b", "sha256": "6558ba13dc4f7526aea2a14946204c5ea7ef4b623444e0ed4ecc174b512ab665" }, "downloads": -1, "filename": "sanic_json-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "416741a144a609987e646015f4a4822b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2195, "upload_time": "2018-08-24T07:44:23", "url": "https://files.pythonhosted.org/packages/56/5f/991e5bcf27ee171ef171a6c68db1fdb5d1f0b80ad4079e9859bd3d84eb60/sanic_json-0.1.0-py2.py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "34ca755567b43ef3bb45d79b539bd7c4", "sha256": "66651204b9693840a6eca8737e6da5269d60438d797ab4945d332862e6bc919f" }, "downloads": -1, "filename": "sanic_json-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "34ca755567b43ef3bb45d79b539bd7c4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2278, "upload_time": "2018-08-24T09:31:41", "url": "https://files.pythonhosted.org/packages/8a/65/0c7af195e8c8659b28000540534884db5d42f67b0845e07635e604790541/sanic_json-0.1.1-py3-none-any.whl" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "bd97bb0807d67f7d6a6d16136ffa058e", "sha256": "3ee396ff77e65711605d9d21c2cf400f37657469efc2bbbe8fa3d61b900d2b59" }, "downloads": -1, "filename": "sanic_json-0.1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bd97bb0807d67f7d6a6d16136ffa058e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4857, "upload_time": "2018-09-09T14:51:06", "url": "https://files.pythonhosted.org/packages/40/05/ac76562f5b9f31b1010e551b4a279e33a706b0b7639e64415f179c744a57/sanic_json-0.1.10-py2.py3-none-any.whl" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "e1b8a00f57aec7b1b206f70d6cacf76f", "sha256": "cb23316b90347c60501db1a51708dcc09094b065836d17b062e1e1423646a1ef" }, "downloads": -1, "filename": "sanic_json-0.1.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e1b8a00f57aec7b1b206f70d6cacf76f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3586, "upload_time": "2018-09-11T13:51:02", "url": "https://files.pythonhosted.org/packages/98/8b/c7253a83833a4d9dc46bf54998fe0cf996b42e7af23cc395e7403bb47c23/sanic_json-0.1.11-py2.py3-none-any.whl" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "7e683355dadb53d91a96ca1f236afcf4", "sha256": "98a3f9368a522f5565636ec07feb0d555ef0d8ba8e2531af6a8c59845ce863f9" }, "downloads": -1, "filename": "sanic_json-0.1.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e683355dadb53d91a96ca1f236afcf4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3821, "upload_time": "2018-09-11T14:14:13", "url": "https://files.pythonhosted.org/packages/4e/3b/38138ffa980ddfa7303d175f4eea9db8da0d685de28edefa27feb10f392b/sanic_json-0.1.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb25d800fb3c3d326dd82ef7a4bfe934", "sha256": "e093097c415568ccdcb824f51b060e12fffba330f5e8020958172ae1b3179b58" }, "downloads": -1, "filename": "sanic_json-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "fb25d800fb3c3d326dd82ef7a4bfe934", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3819, "upload_time": "2018-09-11T14:14:22", "url": "https://files.pythonhosted.org/packages/55/cc/5f011c86c4f0afc963fc28556c6cc51c7b95114a610e8f4a2f9f7b18b3a1/sanic_json-0.1.12-py3-none-any.whl" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "1db38086a11561cf0f204ac47859a679", "sha256": "e19b90e958fd58bcb2378cf18884ad3bd9562da7e6585c3986371c916c929a8f" }, "downloads": -1, "filename": "sanic_json-0.1.13-py3-none-any.whl", "has_sig": false, "md5_digest": "1db38086a11561cf0f204ac47859a679", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3859, "upload_time": "2019-07-17T08:21:40", "url": "https://files.pythonhosted.org/packages/85/16/39125028df04ccc9e2831024c2679fd1885072c1635efddc3b9004a28073/sanic_json-0.1.13-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "3ebd7fcd0ff1cc392e9b6918a3e9c8de", "sha256": "ec4bbe091fc0b9813876f12e7ece9a3a3d30bc56abd5348769bebee65fa44a04" }, "downloads": -1, "filename": "sanic_json-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3ebd7fcd0ff1cc392e9b6918a3e9c8de", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3250, "upload_time": "2018-08-24T11:33:59", "url": "https://files.pythonhosted.org/packages/01/89/430959f5c94d72635b687c5592ea9880a084400d99915b37874eaffc8f67/sanic_json-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e66b9ee7c60511d651301182a2589e8a", "sha256": "49a010ddda15e242dbf5f864fa23fa5942ed0995f7dcd8ab07b66d46faf20e2b" }, "downloads": -1, "filename": "sanic_json-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e66b9ee7c60511d651301182a2589e8a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3249, "upload_time": "2018-08-24T11:40:35", "url": "https://files.pythonhosted.org/packages/1d/8b/6443ff3a079f76395aa0672fba5acd4e3517cca336c9f40ad751508a1a7e/sanic_json-0.1.3-py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "18c8ce7ed429d6a5c8f44313bb994987", "sha256": "f4d354976f0300acc1d228d5548f5304484b4a00d5d147a2930a614084e6e775" }, "downloads": -1, "filename": "sanic_json-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "18c8ce7ed429d6a5c8f44313bb994987", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3312, "upload_time": "2018-08-24T12:03:31", "url": "https://files.pythonhosted.org/packages/42/97/d835f60d3c6c8dae49741144ac734dad4ea08616a5c36cc9268f96547c7a/sanic_json-0.1.4-py3-none-any.whl" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "187089cd4074f4e7b4cdc93cc33da792", "sha256": "44a371a5b2e1897a0419883fa10b61154a96db8007a9750e23a463c5eaaecb11" }, "downloads": -1, "filename": "sanic_json-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "187089cd4074f4e7b4cdc93cc33da792", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3390, "upload_time": "2018-08-24T12:32:49", "url": "https://files.pythonhosted.org/packages/93/10/1bcca7ff233db3a273b1896cbe0084b98df680302ac1305cbc6ab0f01b53/sanic_json-0.1.5-py3-none-any.whl" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "d3d53315004638b0842818c899fb4631", "sha256": "2d7810d38510739a553f834c3797ac81ea40cfdae16df2997e9fc844c0389cca" }, "downloads": -1, "filename": "sanic_json-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d3d53315004638b0842818c899fb4631", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4698, "upload_time": "2018-09-09T10:23:17", "url": "https://files.pythonhosted.org/packages/73/64/dd25ea990672f59ce92d6e783982ea058bd4ab0a26d5015ffcede26edb61/sanic_json-0.1.6-py2.py3-none-any.whl" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "fecfe5a5b295bf135303e25a52b4efc9", "sha256": "efc8d292c1bf72c3b15c4808cc19dd89c6c1d83bd7cbf22240183c72165cd494" }, "downloads": -1, "filename": "sanic_json-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fecfe5a5b295bf135303e25a52b4efc9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4708, "upload_time": "2018-09-09T10:30:05", "url": "https://files.pythonhosted.org/packages/59/93/ef539f59aa2d6608acc3ff22af9fef699e440e4152b76768880183255f8c/sanic_json-0.1.7-py2.py3-none-any.whl" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "f467641e0305ee394c149f8d32bc7037", "sha256": "fbdeefa28db22e9f8c17771763cf2264714aca43cee71d880dc8727b2c4122f3" }, "downloads": -1, "filename": "sanic_json-0.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f467641e0305ee394c149f8d32bc7037", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4720, "upload_time": "2018-09-09T11:23:49", "url": "https://files.pythonhosted.org/packages/b5/08/31275a4814c140f4cb029e407d34bd26da54ed95f5cb5c9b651e0423c3a4/sanic_json-0.1.8-py2.py3-none-any.whl" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "db795b9b742c03e30fe036b03e94f765", "sha256": "d9b1c3e86bb1a2f964e2f0f2bc8a02d62c5b2c28217d6e88d0fbbee504759c0f" }, "downloads": -1, "filename": "sanic_json-0.1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db795b9b742c03e30fe036b03e94f765", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4840, "upload_time": "2018-09-09T14:49:20", "url": "https://files.pythonhosted.org/packages/55/bb/f13b22921fef666917c2e937d65115a05a3c9b8895449f6b3bf55cb828e8/sanic_json-0.1.9-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1db38086a11561cf0f204ac47859a679", "sha256": "e19b90e958fd58bcb2378cf18884ad3bd9562da7e6585c3986371c916c929a8f" }, "downloads": -1, "filename": "sanic_json-0.1.13-py3-none-any.whl", "has_sig": false, "md5_digest": "1db38086a11561cf0f204ac47859a679", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3859, "upload_time": "2019-07-17T08:21:40", "url": "https://files.pythonhosted.org/packages/85/16/39125028df04ccc9e2831024c2679fd1885072c1635efddc3b9004a28073/sanic_json-0.1.13-py3-none-any.whl" } ] }