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
Hashes for drf_batch_requests-0.9.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2e2831ebf940be00ccc7a7e2d6b588545cf599bae0184033dc43effaa50dcf1 |
|
MD5 | 0c6fd46b01c5894121189f9b9a04803d |
|
BLAKE2b-256 | 4ecdf1468db92c3ade65d134151f1de6046cf05fd7ab037af8a20005c6b09520 |