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.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6b5c9ab243dc9e7534aa49709473e48137c9f2c081f6249d36a052c9481a73d |
|
MD5 | 7b61141c2d60d9612a5717028b806314 |
|
BLAKE2b-256 | 43d5c67e42b2b4a54e3a1a1eedf114575f83485793cf4618295ba4dc8adc61ff |