batch http requests

Viewed 26412

Does anyone know a standard way to batch http requests? Meaning - sending multiple http atomic requests in one round trip?

We need such mechanism in our REST API implementation for performance reasons. This kind of mechanism can reduce dramatically the number of round trips that the client needs to perform to consume the API.

Thanks in advance,

Shay

7 Answers

CURL

The build 17063 of windows 10 (and the following versions) are coming with CURL command:

curl -X POST -H "Content-Type: application/json" -d "{\"name\": \"myname\", \"email\": \"some@example.com\"}' https://example/contact

winHttpJs.bat

call winhttpjs.bat "http://requestb.in/xxxxxx" -method POST -header hdrs.txt -reportfile reportfile2.txt

call winhttpjs.bat "http://requestb.in/xxxxxx" -method GET -header hdrs.txt -reportfile reportfile3.txt -saveTo c:\somezip.zip 

call winhttpjs.bat "http://requestb.in/xxxxxx" -method POST -header hdrs.txt -reportfile reportfile2.txt -saveTo responsefile2 -ua "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"  -body-file some.json

It does not support multi-part requests at the moment ,i'm planning to add such a thing but I don't know when i'll have the time.

You create batch requests by calling new_batch_http_request() on your service object, which returns a BatchHttpRequest object, and then calling add() for each request you want to execute. You may pass in a callback with each request that is called with the response to that request. The callback function arguments are a unique request identifier for each API call, a response object which contains the API call response, and an exception object which may be set to an exception raised by the API call. After you've added the requests, you call execute() to make the requests. The execute() function blocks until all callbacks have been called.

References:

You can try this too https://developers.google.com/api-client

library/python/guide/batch

https://cloud.google.com/storage/docs/json_api/v1/how-tos/batch

Related