Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
express-batch-requests
Advanced tools
A simple way to add HTTP batch request support to your node API using express middleware.
Batching HTTP requests allows client applications to issue multiple HTTP requests to your API using just one HTTP request - reducing network chatter, latency etc. This middleware extracts and executes each request individually, either in parallel or in series, and returns the result of each request as an array item.
npm install --save express-batch-requests
var express = require('express');
var server = express();
var expressBatchRequests = require('express-batch-requests');
// mount the batch handler middleware
server.post('/batch', expressBatchRequests);
// typical API route 1
server.get('/route1', function (req, res) {
res.send("Hello World");
});
// typical API route 2
server.post('/route2', function (req, res) {
res.json({
fullName: req.body.firstName + ' ' + req.body.lastName
});
});
// start the server
server.listen(8080, function () {
console.log('Web server listening on port 8080');
});
Requests are executed in parallel by default, to execute them in series add executeInSeries: true
. Likewise, to include the original request object with each result add includeRequestsInResponse: true
to the request.
To copy HTTP headers from the batch request onto each of the batch request such as authorization, add mergeHeaders
with a string containing a comma separated list of header names (in lower case).
{
"executeInSeries": true,
"includeRequestsInResponse": true,
"mergeHeaders": "authorization, x-requested-by",
"batch": [
{
"url": "/route1",
"method": "GET"
},
{
"url": "/route2",
"method": "POST",
"headers": {
"User-Agent": "space-command"
},
"body": {
"firstName": "Buzz",
"lastName": "Lightyear"
}
}
]
}
[
{
"request": {
"url": "/route1",
"method": "GET"
},
"response": {
"code": 200,
"headers": {
"content-type": "text/plain"
},
"body": "Hello World"
}
},
{
"request": {
"url": "/route2",
"method": "POST",
"headers": {
"User-Agent": "space-command"
},
"body": {
"firstName": "Buzz",
"lastName": "Lightyear"
}
},
"response": {
"code": 200,
"headers": {
"content-type": "application/json"
},
"body": {
"fullName": "Buzz Lightyear"
}
}
}
]
If you find this useful star the repo as it helps me prioritize which bugs to tackle first.
For change-log, check releases.
Licensed under MIT License © John Doherty
FAQs
Express middleware to process batch HTTP requests
The npm package express-batch-requests receives a total of 10 weekly downloads. As such, express-batch-requests popularity was classified as not popular.
We found that express-batch-requests demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.