Facebook-like implementation of batch requests
Project description
Quick start
examples:
curl -X POST \ http://127.0.0.1:8000/batch/ \ -H 'cache-control: no-cache' \ -H 'content-type: application/json' \ -d '{"batch": [ { "method": "get", "relative_url": "/test/", "name": "yolo" }, { "method": "post", "relative_url": "/test/?id={result=yolo:$.id}&ids={result=yolo:$.data.*.id}", "body": {"data": {"id": "{result=yolo:$.id}", "ids": "{result=yolo:$.data.*.id}"}, "test": "yolo"} }, { "method": "post", "relative_url": "/test/", "body": "{\"data\": 42}", "omit_response_on_success": true }, { "method": "options", "relative_url": "/test/" } ] }'
using file uploading
curl -X POST \ http://127.0.0.1:8000/batch/ \ -H 'cache-control: no-cache' \ -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \ -F 'batch=[ { "method": "get", "relative_url": "/test/", "name": "yolo" }, { "method": "post", "relative_url": "/test/?id={result=yolo:$.id}&ids={result=yolo:$.data.*.id}", "body": {"data": "{result=yolo:$.data.*.id}", "test": "yolo"}, "attached_files":{"file": "a.jpg"} }, { "method": "post", "relative_url": "/test/", "body": "{\"data\": 42}", "omit_response_on_success": true, "attached_files":["a.jpg", "b.png"] }, { "method": "options", "relative_url": "/test/" } ]' \ -F b.png=@2476.png \ -F a.jpg=@check_133.pdf
Future features:
add support for requests pipelining. use responses as arguments to next requests (done)
build graph based on requests dependencies & run simultaneously independent.
[STRIKEOUT: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)
[STRIKEOUT: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).
support files uploading (done)
Dependencies:
Django starting from 2.2
Django rest framework
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file drf-batch-requests-0.9.5.tar.gz
.
File metadata
- Download URL: drf-batch-requests-0.9.5.tar.gz
- Upload date:
- Size: 31.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15549cf7ed280923cd7db1eb13be99ca58c20f4bdf9b967811b0f4e9a3ca45be |
|
MD5 | 2877bb5596b0a19d25dff91ee4516094 |
|
BLAKE2b-256 | 9c1b481afe804cdaeff9d219ab015e590003359280b9036d1e58c5007b5cf5a8 |
File details
Details for the file drf_batch_requests-0.9.5-py3-none-any.whl
.
File metadata
- Download URL: drf_batch_requests-0.9.5-py3-none-any.whl
- Upload date:
- Size: 76.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f4324abab4575a88163c63a878218599ac02d88cafb7122463d5527164c1353 |
|
MD5 | 1acb5efafa6577536b82e882872928b1 |
|
BLAKE2b-256 | 5c7294428a198cfc7a0928ca4f0692507ae2e96e91102e8ffe74a839b03b6a92 |