{ "info": { "author": "Roman Karpovich", "author_email": "fpm.th13f@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "DRF batch requests\n=====================\n\n\n[![PyPI version](https://badge.fury.io/py/drf-batch-requests.svg)](https://badge.fury.io/py/drf-batch-requests)\n[![Travis CI](https://travis-ci.org/roman-karpovich/drf-batch-requests.svg?branch=master)](https://travis-ci.org/roman-karpovich/drf-batch-requests)\n[![Coverage Status](https://coveralls.io/repos/github/roman-karpovich/drf-batch-requests/badge.svg?branch=master)](https://coveralls.io/github/roman-karpovich/drf-batch-requests?branch=master)\n[![Code Health](https://landscape.io/github/roman-karpovich/drf-batch-requests/master/landscape.svg?style=flat)](https://landscape.io/github/roman-karpovich/drf-batch-requests/master)\n[![Python Versions](https://img.shields.io/pypi/pyversions/drf-batch-requests.svg?style=flat-square)](https://pypi.python.org/pypi/drf-batch-requests)\n[![Implementation](https://img.shields.io/pypi/implementation/drf-batch-requests.svg?style=flat-square)](https://pypi.python.org/pypi/drf-batch-requests)\n\nQuick start\n-----------\n\n\nexamples:\n```\n curl -X POST \\\n http://127.0.0.1:8000/batch/ \\\n -H 'cache-control: no-cache' \\\n -H 'content-type: application/json' \\\n -d '{\"batch\": [\n {\n \"method\": \"get\",\n \"relative_url\": \"/test/\",\n \"name\": \"yolo\"\n },\n {\n \"method\": \"post\",\n \"relative_url\": \"/test/?id={result=yolo:$.id}&ids={result=yolo:$.data.*.id}\",\n \"body\": {\"data\": {\"id\": \"{result=yolo:$.id}\", \"ids\": \"{result=yolo:$.data.*.id}\"}, \"test\": \"yolo\"}\n },\n {\n \"method\": \"post\",\n \"relative_url\": \"/test/\",\n \"body\": \"{\\\"data\\\": 42}\",\n \"omit_response_on_success\": true\n },\n {\n \"method\": \"options\",\n \"relative_url\": \"/test/\"\n }\n ]\n }'\n```\n\nusing file uploading\n```\n curl -X POST \\\n http://127.0.0.1:8000/batch/ \\\n -H 'cache-control: no-cache' \\\n -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \\\n -F 'batch=[\n {\n \"method\": \"get\",\n \"relative_url\": \"/test/\",\n \"name\": \"yolo\"\n },\n {\n \"method\": \"post\",\n \"relative_url\": \"/test/?id={result=yolo:$.id}&ids={result=yolo:$.data.*.id}\",\n \"body\": {\"data\": \"{result=yolo:$.data.*.id}\", \"test\": \"yolo\"},\n \"attached_files\":{\"file\": \"a.jpg\"}\n },\n {\n \"method\": \"post\",\n \"relative_url\": \"/test/\",\n \"body\": \"{\\\"data\\\": 42}\",\n \"omit_response_on_success\": true,\n \"attached_files\":[\"a.jpg\", \"b.png\"]\n },\n {\n \"method\": \"options\",\n \"relative_url\": \"/test/\"\n }\n ]' \\\n -F b.png=@2476.png \\\n -F a.jpg=@check_133.pdf\n```\n\n\nFuture features:\n\n- add support for requests pipelining. use responses as arguments to next requests (done)\n- build graph based on requests dependencies & run simultaneously independent.\n- ~~switchable atomic support. true - all fails if something wrong. else - fail only dependent (can be very hard to support on front-end side, but for now seems as good feature)~~ run all requests in single transaction. (done)\n- ~~use native django. we don't use complicated things that require drf for work. all can be done with \"naked\" django.~~ (since we validate requests with drf serializers, it's better to leave as it is).\n- support files uploading (done)\n\n\n\nDependencies:\n\n- Django starting from 1.9\n- Django rest framework (3.6 for 1.9 django)\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/roman-karpovich/drf-batch-requests", "keywords": "django django-rest-framework drf batch", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "drf-batch-requests", "package_url": "https://pypi.org/project/drf-batch-requests/", "platform": "", "project_url": "https://pypi.org/project/drf-batch-requests/", "project_urls": { "Homepage": "https://github.com/roman-karpovich/drf-batch-requests" }, "release_url": "https://pypi.org/project/drf-batch-requests/0.8.11/", "requires_dist": null, "requires_python": "", "summary": "Facebook-like implementation of batch requests", "version": "0.8.11" }, "last_serial": 4883520, "releases": { "0.8.0": [ { "comment_text": "", "digests": { "md5": "6e192dc862eb52877649e6e5dd0ad98f", "sha256": "1e715a8c4e88f2f18f55de432a3123b63bbf14adb810466cd91e00713dd6580f" }, "downloads": -1, "filename": "drf-batch-requests-0.8.0.tar.gz", "has_sig": false, "md5_digest": "6e192dc862eb52877649e6e5dd0ad98f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8839, "upload_time": "2017-10-10T12:37:08", "url": "https://files.pythonhosted.org/packages/c6/8b/abb3c3e3c6774d1cf1cf0965fd19ff3b404ae2021938bd7159eccda1564c/drf-batch-requests-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "af4b861eddbd2df747dad814e3e2cf12", "sha256": "7e591de0f26370e2d299b67b6f3f85a9adbac752e65829831167a4feae83679c" }, "downloads": -1, "filename": "drf-batch-requests-0.8.1.tar.gz", "has_sig": false, "md5_digest": "af4b861eddbd2df747dad814e3e2cf12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9361, "upload_time": "2017-10-11T13:42:57", "url": "https://files.pythonhosted.org/packages/7a/67/a77c89b45bf3c039230705d8148f2b3140d88d27e740afbeab5d39985409/drf-batch-requests-0.8.1.tar.gz" } ], "0.8.10": [ { "comment_text": "", "digests": { "md5": "109564a3ea3ad02d1263ec561478d4a5", "sha256": "16b093d765b0029695e9662c7dde8482e99a082172121726d0130f8401c2da87" }, "downloads": -1, "filename": "drf_batch_requests-0.8.10-py3-none-any.whl", "has_sig": false, "md5_digest": "109564a3ea3ad02d1263ec561478d4a5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 39525, "upload_time": "2018-10-16T08:33:49", "url": "https://files.pythonhosted.org/packages/de/b6/2cb7b6dd71635af2bf6bd1562e9e11e291d7c68beb35580e616e2a1897cd/drf_batch_requests-0.8.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2af2dabf15192d2a20f607a861196d44", "sha256": "9b7272d4e0b6da2c055eba6cf35606081782b49041a3727592a6fd77015daf3d" }, "downloads": -1, "filename": "drf-batch-requests-0.8.10.tar.gz", "has_sig": false, "md5_digest": "2af2dabf15192d2a20f607a861196d44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24604, "upload_time": "2018-10-16T08:33:47", "url": "https://files.pythonhosted.org/packages/c0/2b/a229d1ee6f33c710195e6cb0e3f40a6829fc01bfb40a97151ee66e18a023/drf-batch-requests-0.8.10.tar.gz" } ], "0.8.11": [ { "comment_text": "", "digests": { "md5": "3a220009d7f8aa7c5d0cbe4f2ee00ee4", "sha256": "ea7346686c7f7e652652bdb454d37cc2b11351ee21dd3de2fe0c720ea30bdd8c" }, "downloads": -1, "filename": "drf_batch_requests-0.8.11-py2-none-any.whl", "has_sig": false, "md5_digest": "3a220009d7f8aa7c5d0cbe4f2ee00ee4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 46111, "upload_time": "2019-03-01T10:36:03", "url": "https://files.pythonhosted.org/packages/0a/e2/ac490726e78e29d45120cdcd5b4fe90cc3f9321d3d725379373b728b7405/drf_batch_requests-0.8.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a80e35f455c2e6d27afa9b18b73a57f6", "sha256": "ac171e80798a16f4ee277ff443a4dcb8bf64ac6581abfce405545cc6f859544d" }, "downloads": -1, "filename": "drf-batch-requests-0.8.11.tar.gz", "has_sig": false, "md5_digest": "a80e35f455c2e6d27afa9b18b73a57f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29088, "upload_time": "2019-03-01T10:36:01", "url": "https://files.pythonhosted.org/packages/b8/40/f4e7290679bc6abd20b1132180fbe8fd12f98b6bc7e0319017b20c0237ce/drf-batch-requests-0.8.11.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "c03dc5abb60f6aa7fcb3ebad9a72ad37", "sha256": "46278cda95e16786d6dc9180c4323f20aeeff6d09906f527f63c0a2035b50f3d" }, "downloads": -1, "filename": "drf-batch-requests-0.8.2.tar.gz", "has_sig": false, "md5_digest": "c03dc5abb60f6aa7fcb3ebad9a72ad37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4412, "upload_time": "2017-10-11T14:44:46", "url": "https://files.pythonhosted.org/packages/e6/05/f195d54c877b96337ace9302ef10567ff59a5809f044f7e942c14accfb0d/drf-batch-requests-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "0a3a5f1c622fcb56ce7500a8fd062f27", "sha256": "c2c2af6690081c3d68ae8c97074ff6484ca50329a80b468cca31be1d206595fd" }, "downloads": -1, "filename": "drf-batch-requests-0.8.3.tar.gz", "has_sig": false, "md5_digest": "0a3a5f1c622fcb56ce7500a8fd062f27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13834, "upload_time": "2017-10-11T16:56:26", "url": "https://files.pythonhosted.org/packages/c5/bc/2ea8f7dffadb4a9cc4512e8b35b535f43562ef0b05cebf6a52eb4e883083/drf-batch-requests-0.8.3.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "f891fde702016d82e0b69b596503f523", "sha256": "9bf41291121fd0d4939a999a82acea3d17a5d14ba7a1f0382021982e573bb36b" }, "downloads": -1, "filename": "drf_batch_requests-0.8.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f891fde702016d82e0b69b596503f523", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 31252, "upload_time": "2018-02-12T13:41:15", "url": "https://files.pythonhosted.org/packages/20/0d/d53c75e242448feb25504c4beec240334c07f0d77c4cba64772e931fa1c3/drf_batch_requests-0.8.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "143520bc5475c06eb15cb67086a1a7dc", "sha256": "02720ad0604b0dc2af56823e5b617ec4dba83728fe4dce5f9eff73e3f5dddf12" }, "downloads": -1, "filename": "drf-batch-requests-0.8.4.tar.gz", "has_sig": false, "md5_digest": "143520bc5475c06eb15cb67086a1a7dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18587, "upload_time": "2018-02-12T13:41:12", "url": "https://files.pythonhosted.org/packages/5f/59/34225826fd4700ae49bb639d239dcabca123a458937a228dd3cfdffd685e/drf-batch-requests-0.8.4.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "4e175bf5ba401d6f6c2e417cac4b1811", "sha256": "ba9f3f0412c046a1af65e385d8aec03dc19cb4d1b749c85d147b6dc109f4cc2b" }, "downloads": -1, "filename": "drf_batch_requests-0.8.5-py2-none-any.whl", "has_sig": false, "md5_digest": "4e175bf5ba401d6f6c2e417cac4b1811", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 31323, "upload_time": "2018-02-12T14:20:13", "url": "https://files.pythonhosted.org/packages/75/4d/156d6a0c6a9663307a9f402d298c70752332ede5aca71ce660e626cae3ea/drf_batch_requests-0.8.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "597454f3926cf5e6d409638df5d1d967", "sha256": "eec4cdd47d3a92873a247807823ea17bf621ed7272ebfa4f15a4249389c22bf1" }, "downloads": -1, "filename": "drf-batch-requests-0.8.5.tar.gz", "has_sig": false, "md5_digest": "597454f3926cf5e6d409638df5d1d967", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18673, "upload_time": "2018-02-12T14:20:11", "url": "https://files.pythonhosted.org/packages/6d/ad/1932ce06067a75f939f88c5d0e5435a573d0e3adcf08ecf631e22b672877/drf-batch-requests-0.8.5.tar.gz" } ], "0.8.6": [ { "comment_text": "", "digests": { "md5": "06ed2ab89803857db9b606cad6383ad8", "sha256": "9e6dcaac33237f82fb15c0cb2250ac614a589d4d27ec93d5eae85cc5d6308d61" }, "downloads": -1, "filename": "drf_batch_requests-0.8.6-py3-none-any.whl", "has_sig": false, "md5_digest": "06ed2ab89803857db9b606cad6383ad8", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 31338, "upload_time": "2018-02-13T09:57:05", "url": "https://files.pythonhosted.org/packages/46/97/ea618dbb99c12400fa6f22d3ae1a821c3163b193d1eea35f794cd854d1fb/drf_batch_requests-0.8.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5a8d6a04de0c1648384f692f80fa9c8", "sha256": "acc090de2f39b989deb717e29020378590e100d611cf90fb7a4f71b6d1c0fede" }, "downloads": -1, "filename": "drf-batch-requests-0.8.6.tar.gz", "has_sig": false, "md5_digest": "a5a8d6a04de0c1648384f692f80fa9c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18689, "upload_time": "2018-02-13T09:57:03", "url": "https://files.pythonhosted.org/packages/27/f1/9b59b45aa935d69a3e4f5d631617ef77bea40b1fe475ed3bc1a98c2af5fb/drf-batch-requests-0.8.6.tar.gz" } ], "0.8.8": [ { "comment_text": "", "digests": { "md5": "fab4a786e946e9ba95b0df6ac53f20a5", "sha256": "449cab562c46bdbfff7c120651a0af7341c20b06c969236bf75b5b13d1c11139" }, "downloads": -1, "filename": "drf_batch_requests-0.8.8-py3-none-any.whl", "has_sig": false, "md5_digest": "fab4a786e946e9ba95b0df6ac53f20a5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 39449, "upload_time": "2018-06-25T11:38:46", "url": "https://files.pythonhosted.org/packages/6a/c9/aac6e8d31cdc70b393f2808578180b5450e3482c462164f47b3a635d121c/drf_batch_requests-0.8.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f05a70636908cb036891c7edba180817", "sha256": "2ca5edd7ab6300c41cb0bcdba586b1dd7ec23f800c23fa169bb4039d5f4fb452" }, "downloads": -1, "filename": "drf-batch-requests-0.8.8.tar.gz", "has_sig": false, "md5_digest": "f05a70636908cb036891c7edba180817", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24563, "upload_time": "2018-06-25T11:38:44", "url": "https://files.pythonhosted.org/packages/b0/d7/35e496b4e34178ec8137ba49013552af8a7ef01141015d7b6bd13dfa95c5/drf-batch-requests-0.8.8.tar.gz" } ], "0.8.9": [ { "comment_text": "", "digests": { "md5": "fea034306622138d67037105a7735a80", "sha256": "f2f33d9a398374ec203d5988341da642f657754451e01ab04d04f1042947ffe6" }, "downloads": -1, "filename": "drf_batch_requests-0.8.9-py3-none-any.whl", "has_sig": false, "md5_digest": "fea034306622138d67037105a7735a80", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 39486, "upload_time": "2018-10-16T08:08:45", "url": "https://files.pythonhosted.org/packages/3f/54/f89936f29638596a70f8380eec45fa5dade54fad9e8499a520fc5cfa756c/drf_batch_requests-0.8.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f1638e5bd19aef6813b9bea22eba7ec", "sha256": "819e9a1eddbec8576ffc69f25722c5ccebe72c5cb96bce11a8a90028d507608c" }, "downloads": -1, "filename": "drf-batch-requests-0.8.9.tar.gz", "has_sig": false, "md5_digest": "7f1638e5bd19aef6813b9bea22eba7ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24592, "upload_time": "2018-10-16T08:08:42", "url": "https://files.pythonhosted.org/packages/ac/37/72949c064039e617d4dc457814410c74072eea4591f3d721b9ba10710d38/drf-batch-requests-0.8.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3a220009d7f8aa7c5d0cbe4f2ee00ee4", "sha256": "ea7346686c7f7e652652bdb454d37cc2b11351ee21dd3de2fe0c720ea30bdd8c" }, "downloads": -1, "filename": "drf_batch_requests-0.8.11-py2-none-any.whl", "has_sig": false, "md5_digest": "3a220009d7f8aa7c5d0cbe4f2ee00ee4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 46111, "upload_time": "2019-03-01T10:36:03", "url": "https://files.pythonhosted.org/packages/0a/e2/ac490726e78e29d45120cdcd5b4fe90cc3f9321d3d725379373b728b7405/drf_batch_requests-0.8.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a80e35f455c2e6d27afa9b18b73a57f6", "sha256": "ac171e80798a16f4ee277ff443a4dcb8bf64ac6581abfce405545cc6f859544d" }, "downloads": -1, "filename": "drf-batch-requests-0.8.11.tar.gz", "has_sig": false, "md5_digest": "a80e35f455c2e6d27afa9b18b73a57f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29088, "upload_time": "2019-03-01T10:36:01", "url": "https://files.pythonhosted.org/packages/b8/40/f4e7290679bc6abd20b1132180fbe8fd12f98b6bc7e0319017b20c0237ce/drf-batch-requests-0.8.11.tar.gz" } ] }