{ "info": { "author": "weaming", "author_email": "garden.yuen@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# JSON API\n\nMake you focus on writting business logic code, just return dict data for API, or other Response directly.\n\nWhat you need to do is inherit the Magic class and overwrite several methods, then use method it provides to add route to your framework app.\n\nThe key point is it's api `magic.json_api(view_func)` wraps your logic code, then check the request data and reponse data.\n\n```\npip3 install json-api\n```\n\n## Usage Examples\n### Sanic Framework\n\n```\nimport os\nfrom sanic import Sanic\n\nfrom json_api.magic_sanic import MagicSanic\n\nmagic = MagicSanic()\napp = Sanic()\nmagic.set_app(app)\n\n\nasync def index(request, name=\"world\"):\n return {\"hello\": name}\n\n\nasync def register(request, name, email, password):\n password = password or generate_random_password()\n user = new_user(name, email, password)\n return user.to_dict()\n\nasync def get_user_information(request, name):\n user = get_user_by_name(name)\n if not user:\n return {'reason': 'not found'}, 404\n return user.to_dict()\n\n\nmagic.add_route(\"/\", index)\nmagic.add_route(\"/api/user/register\", register, methods=[\"POST\"])\nmagic.add_route(\"/api/user/info\", get_user_information)\n\n\nif __name__ == \"__main__\":\n debug = bool(os.getenv(\"DEBUG\"))\n app.run(host=\"0.0.0.0\", port=8000, debug=debug)\n```\n\n### Django Example\n\n```\nfrom json_api.magic_django import MagicDjango\nfrom .utils import JSONEncoder\n\nmagic = MagicDjango()\nmagic.encoder = JSONEncoder\n\nurlpatterns = [\n path('admin/', admin.site.urls),\n path('api/', include([\n path('translate', magic.json_api(trans))\n ]))\n]\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/json-api", "keywords": "abstract json api", "license": "", "maintainer": "", "maintainer_email": "", "name": "json-api", "package_url": "https://pypi.org/project/json-api/", "platform": "", "project_url": "https://pypi.org/project/json-api/", "project_urls": { "Bug Reports": "https://github.com/weaming/json-api", "Homepage": "https://github.com/weaming/json-api", "Source": "https://github.com/weaming/json-api" }, "release_url": "https://pypi.org/project/json-api/0.1.21/", "requires_dist": null, "requires_python": "", "summary": "Make you focus on writting business logic code, just return dict data for API, or other Response directly.", "version": "0.1.21" }, "last_serial": 5865495, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b730df7b20aa297c28808e767ad109d1", "sha256": "4b47d97d97fbf6c484f3f4df850e9b8e3fb11b590a44f6579d28760b0922ad90" }, "downloads": -1, "filename": "json_api-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b730df7b20aa297c28808e767ad109d1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5239, "upload_time": "2018-09-13T03:33:27", "url": "https://files.pythonhosted.org/packages/d1/21/8dbbfbe818b771569da743de661a1406f2f2a66dca3ced297f173e171a9d/json_api-0.1.0-py2.py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "183ddfed181c8b0588c015d0ec1d4f54", "sha256": "03d95635eb278e5d6bae621f03b47fc87c591c89b0121af727f87a9f2ebe9adf" }, "downloads": -1, "filename": "json_api-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "183ddfed181c8b0588c015d0ec1d4f54", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5277, "upload_time": "2018-09-13T03:37:31", "url": "https://files.pythonhosted.org/packages/c0/ca/f663d66dea7416296cb371036f657c95511c1ca7ff60a7dd0fd0b7f9b882/json_api-0.1.1-py2.py3-none-any.whl" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "7218e458d3f42c6bae69349db1dc7478", "sha256": "a3c2ac9cbaceb8c43a784a2955908d757d9e9f060105fa75636b6207dc407565" }, "downloads": -1, "filename": "json_api-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "7218e458d3f42c6bae69349db1dc7478", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6106, "upload_time": "2018-09-15T07:27:06", "url": "https://files.pythonhosted.org/packages/23/49/f1ccd17a786bedbaf32df56681e73f8c39b0a1f5331610a542ab02f9edf9/json_api-0.1.10-py3-none-any.whl" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "27a0705dd823979348c61b4a7423ec27", "sha256": "74b2fa94fa8a847cf9a56cc245074aa6c778f733b4a1a339cc80d713c70a5739" }, "downloads": -1, "filename": "json_api-0.1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "27a0705dd823979348c61b4a7423ec27", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8321, "upload_time": "2018-12-02T13:59:17", "url": "https://files.pythonhosted.org/packages/85/be/46bbb5a0e8f5281d86983d2d4f30104f4df3f9d2fa8f40604343f1b6d8ed/json_api-0.1.11-py3-none-any.whl" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "b76c396f37ae559bc50965e731ab6541", "sha256": "e47a36a0587e555d034e8afbfbcc0beb527a2a7e27a3dc5768828b281d07dc70" }, "downloads": -1, "filename": "json_api-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "b76c396f37ae559bc50965e731ab6541", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8354, "upload_time": "2018-12-03T04:17:35", "url": "https://files.pythonhosted.org/packages/ee/d6/07d9f3d7149fb01d8ac57abf8eb5e285233ba0a5be072c15732dea71f45a/json_api-0.1.12-py3-none-any.whl" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "e1e8fb85c419ffd88d48a18627278f3c", "sha256": "64bc23770bb947b27cd418508ec64121954d43d525a3e529e1d4b722aa47a471" }, "downloads": -1, "filename": "json_api-0.1.13-py3-none-any.whl", "has_sig": false, "md5_digest": "e1e8fb85c419ffd88d48a18627278f3c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6834, "upload_time": "2019-01-02T13:05:16", "url": "https://files.pythonhosted.org/packages/4c/be/e2713fb464e360e09338a38a1f3ba306cc8deae26e888c26ab0020a28a75/json_api-0.1.13-py3-none-any.whl" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "b603a1dc44fee9773392913d62258afd", "sha256": "13077e369f4eb966a8b4f515bde9c736805b445d50ed16c311f97602b13cf949" }, "downloads": -1, "filename": "json_api-0.1.14-py3-none-any.whl", "has_sig": false, "md5_digest": "b603a1dc44fee9773392913d62258afd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8316, "upload_time": "2019-01-05T13:47:09", "url": "https://files.pythonhosted.org/packages/a9/f1/f9eba77c4d90f8e6ecb6ee07663b492dd1b4c763baf4eddaa3ac9e34ab83/json_api-0.1.14-py3-none-any.whl" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "1ccb45473557c9d6b528ab6cf175734f", "sha256": "496de1ed621739521df1698d9c571670056182cd88d014a13909cef45db2df03" }, "downloads": -1, "filename": "json_api-0.1.15-py3-none-any.whl", "has_sig": false, "md5_digest": "1ccb45473557c9d6b528ab6cf175734f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8315, "upload_time": "2019-01-05T13:53:31", "url": "https://files.pythonhosted.org/packages/09/5e/a977ef59560764a5add34501ed34701d12685fb30b933cf3a1995a0eeaea/json_api-0.1.15-py3-none-any.whl" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "fae8efa4b227be40fe03cb6c2a6e318b", "sha256": "cba5f5553fa252b4161a9031cebcbe1c93ef0296501c6cabdd062f98579cfc0a" }, "downloads": -1, "filename": "json_api-0.1.16-py3-none-any.whl", "has_sig": false, "md5_digest": "fae8efa4b227be40fe03cb6c2a6e318b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7038, "upload_time": "2019-09-16T09:07:41", "url": "https://files.pythonhosted.org/packages/9d/32/d44671ffffb82a42ed7535cace2eff77fa713df11e6e5d3ac4cfa1e7f013/json_api-0.1.16-py3-none-any.whl" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "03370943dc12026d3c30f71ee954910d", "sha256": "fa1572b5dd8bb2af9bea5b1203ae496958e70061091e91f8e329e451337fe4c5" }, "downloads": -1, "filename": "json_api-0.1.17-py3-none-any.whl", "has_sig": false, "md5_digest": "03370943dc12026d3c30f71ee954910d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7039, "upload_time": "2019-09-16T09:11:25", "url": "https://files.pythonhosted.org/packages/26/6d/a9b15b866b2c13d8ce38e2e13f75c05f92607f83d99a78c4bf46e2430eb0/json_api-0.1.17-py3-none-any.whl" } ], "0.1.18": [ { "comment_text": "", "digests": { "md5": "0965be8319e9f7f24688105350c8826c", "sha256": "5763ab7781f7b937d73fd0a786d12d26f3f23f23af6af3766be433961e40589e" }, "downloads": -1, "filename": "json_api-0.1.18-py3-none-any.whl", "has_sig": false, "md5_digest": "0965be8319e9f7f24688105350c8826c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7035, "upload_time": "2019-09-21T07:10:39", "url": "https://files.pythonhosted.org/packages/8c/79/2b7b9a69f601de53a8aea7f611ccbdbdc1e5d2b37bd647a28df2145f1fb9/json_api-0.1.18-py3-none-any.whl" } ], "0.1.19": [ { "comment_text": "", "digests": { "md5": "a9f69424d0b84a0aca6e9d3694b2f70e", "sha256": "c4c294fdd88bf4b37c64f99cd2f54f5b7bdeb5b0c2d49e4fea1d5d92ece96fe4" }, "downloads": -1, "filename": "json_api-0.1.19-py3-none-any.whl", "has_sig": false, "md5_digest": "a9f69424d0b84a0aca6e9d3694b2f70e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7105, "upload_time": "2019-09-21T07:36:48", "url": "https://files.pythonhosted.org/packages/8b/7f/d87852c03295e42e0ccba278afe8b10f21af367600d1a89749e3c8c7ec39/json_api-0.1.19-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "142a8f5139ab0f1c7fb61b19aaece456", "sha256": "ed488d93e8a18738bb731a0b461e4fec5479c305de12c3f93dfd9d25dd028355" }, "downloads": -1, "filename": "json_api-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "142a8f5139ab0f1c7fb61b19aaece456", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5263, "upload_time": "2018-09-13T03:52:12", "url": "https://files.pythonhosted.org/packages/dc/50/c61000f670d232c54f76637881b9d77ec9d05c00d341658362c4cebe2331/json_api-0.1.2-py2.py3-none-any.whl" } ], "0.1.20": [ { "comment_text": "", "digests": { "md5": "3a7d1b3a679b8c0e53d85c496d9a8c88", "sha256": "81389a1546b4165547b19058a47e1f84cf18dbee29ad7c0345f0b977065ff43e" }, "downloads": -1, "filename": "json_api-0.1.20-py3-none-any.whl", "has_sig": false, "md5_digest": "3a7d1b3a679b8c0e53d85c496d9a8c88", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7097, "upload_time": "2019-09-21T07:56:21", "url": "https://files.pythonhosted.org/packages/08/4f/5cd3d6bfdcc22649453933e6acf1a89b9918fa67dc6f27e1fadadfb83eb4/json_api-0.1.20-py3-none-any.whl" } ], "0.1.21": [ { "comment_text": "", "digests": { "md5": "e532e7468275216242fdba8cab309701", "sha256": "f5e4c369e815e70a59596ce1b4921683d966bbe7a38ec8d0df57bf74492eeefb" }, "downloads": -1, "filename": "json_api-0.1.21-py3-none-any.whl", "has_sig": false, "md5_digest": "e532e7468275216242fdba8cab309701", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7098, "upload_time": "2019-09-21T07:59:03", "url": "https://files.pythonhosted.org/packages/7d/0f/f9ddfb5415a430ce169cef65ddefd5917235a621d977c09c94a4fa3d15c7/json_api-0.1.21-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "2cb54460c5dfa822be67ca1f93669209", "sha256": "9945eff68ddf652d386aa9a4456a433d22e4fdd42ea2928f915170aaa0cb585a" }, "downloads": -1, "filename": "json_api-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2cb54460c5dfa822be67ca1f93669209", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5647, "upload_time": "2018-09-13T04:45:03", "url": "https://files.pythonhosted.org/packages/34/54/6bbb96055934703ad6f1073d7ec4d60d5cff2ec954fdf26925288cee431d/json_api-0.1.3-py2.py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "6f2910d2fe160378d59c0e4aee1b4766", "sha256": "ad0a0932becfa2dcd38731c8afe93ce5bd35e9a408a14f110504496ba98d1023" }, "downloads": -1, "filename": "json_api-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "6f2910d2fe160378d59c0e4aee1b4766", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5138, "upload_time": "2018-09-14T13:26:37", "url": "https://files.pythonhosted.org/packages/7e/e6/03d8bc705cc795be70c2784502602b2631495f97c9e5dd21ee34bce8290a/json_api-0.1.4-py3-none-any.whl" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "c676057383a6c9c805a18f1f76b6b373", "sha256": "d54b3f189f212cdf9ec56dc3050b25a5673fa1fa04ff546217d9478dacc5f969" }, "downloads": -1, "filename": "json_api-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "c676057383a6c9c805a18f1f76b6b373", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5173, "upload_time": "2018-09-14T13:45:30", "url": "https://files.pythonhosted.org/packages/f0/0d/78c4dfc79349ec8970d1a169e596427ac65921f7b6ea877fe6a9248f6722/json_api-0.1.5-py3-none-any.whl" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "bd6b7bada8323b89b9fa39e8a2349b92", "sha256": "dcdfa53169430842829836b3d5963c38731e549d85b78a151b8ad085d9a23fa2" }, "downloads": -1, "filename": "json_api-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "bd6b7bada8323b89b9fa39e8a2349b92", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5170, "upload_time": "2018-09-14T13:53:26", "url": "https://files.pythonhosted.org/packages/b8/ab/09898b0b1297958064fedf049a16eec32786f19fc2a150d91079624d99c8/json_api-0.1.6-py3-none-any.whl" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "404ee125face736d967d81d2a684ccf1", "sha256": "698837c6877cab700945f8f52c9f8f50442f2bc602bf52e6acd1079ea58cbff8" }, "downloads": -1, "filename": "json_api-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "404ee125face736d967d81d2a684ccf1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5175, "upload_time": "2018-09-15T06:00:53", "url": "https://files.pythonhosted.org/packages/7e/55/691ce77dbe29977645e0db74c6329a4dda5a6d843fa5fdb91d591ab725b0/json_api-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "87da07a95c1ce0883c31b3f42cb3d9eb", "sha256": "bf0456aebb7677f83481f29d2854ee1f4d2edc183f9d41c75232f286ff5cc79b" }, "downloads": -1, "filename": "json_api-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "87da07a95c1ce0883c31b3f42cb3d9eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5171, "upload_time": "2018-09-15T06:01:07", "url": "https://files.pythonhosted.org/packages/1e/47/7e96988e02614a0359f442585f9764613543654d9df60ceea63193926f80/json_api-0.1.7-py3-none-any.whl" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "620631f58d7f012b20d2458711ece2ca", "sha256": "526ea573957b3176341cb330b821c1f58de8c32e2324c9fbeb4ee2a79ada3c30" }, "downloads": -1, "filename": "json_api-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "620631f58d7f012b20d2458711ece2ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5687, "upload_time": "2018-09-15T06:21:02", "url": "https://files.pythonhosted.org/packages/cc/3b/8ac61e1d01842e6448ecb9e7a336d56e0281b6b37e87eef051e1903d273a/json_api-0.1.8-py3-none-any.whl" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "930216b7703e1b4a51968f4d9e9e38b0", "sha256": "c9836acb1fe56fd4a038b60daa8619423f71eb81274573cec928a585d654c39a" }, "downloads": -1, "filename": "json_api-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "930216b7703e1b4a51968f4d9e9e38b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6058, "upload_time": "2018-09-15T06:57:37", "url": "https://files.pythonhosted.org/packages/29/23/6a5d5db9ba97cfe3b91aec00257d0edbc56a82ab3c2c4baa95e320fe9a73/json_api-0.1.9-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e532e7468275216242fdba8cab309701", "sha256": "f5e4c369e815e70a59596ce1b4921683d966bbe7a38ec8d0df57bf74492eeefb" }, "downloads": -1, "filename": "json_api-0.1.21-py3-none-any.whl", "has_sig": false, "md5_digest": "e532e7468275216242fdba8cab309701", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7098, "upload_time": "2019-09-21T07:59:03", "url": "https://files.pythonhosted.org/packages/7d/0f/f9ddfb5415a430ce169cef65ddefd5917235a621d977c09c94a4fa3d15c7/json_api-0.1.21-py3-none-any.whl" } ] }