ak-fetch v1.0.893
ak-fetch
tldr;
a "batch and queue" HTTP client for making bulk POST requests to an API endpoint:
🌍 Overview
ak-fetch
is a powerful and flexible tool designed for making bulk POST
requests to an API endpoint. It provides a simple interface to batch and queue requests which send data over the network; it adds oft needed features like concurrency control, retries, fire-and-forget making it a robust solution for handling large data transfer operations with ease.
i built this module when creating hello-mixpanel as i needed a way to send large amounts of data to various SaaS analytics APIs in a reliable and efficient manner. it was useful enough for me, that i made it into a proper package.
🚀 Installation
To get started with ak-fetch
, install the module using npm:
npm install ak-fetch
you may also use npx
to run the CLI without installing the package:
npx ak-fetch --help
🖥️ Usage
Use ak-fetch as a module directly in your node script:
const akFetch = require('ak-fetch');
const config = {
url: 'https://api.example.com',
data: [...],
batchSize: 10,
concurrency: 5,
delay: 1000,
// ... other configurations
};
try {
const responses = await akFetch(config);
console.log('API Responses:', responses);
} catch (error) {
console.error('Error:', error);
}
or via the command line:
npx ak-fetch --url https://api.example.com './payloads.json' --batchSize 10 --concurrency 5
Use --help
to see all options
🛠️ Configuration
The ak-fetch module can be configured with a variety of options to suit your needs:
Option | Type | Description |
---|---|---|
url | string | The URL of the API endpoint. |
data | Object[] | An array of data objects to be sent in the requests. |
batchSize | number | # records per batch; Use 0 for no batching. |
concurrency | number | The level of concurrency for the requests. |
delay | number | The delay between requests in milliseconds. |
searchParams | Object | The search parameters to be appended to the URL. |
bodyParams | Object | The body parameters to be sent in the request. |
headers | Object | The headers to be sent in the request. |
verbose | boolean | Whether to log progress of the requests. |
dryRun | boolean | If true, no actual requests are made. |
logFile | string | File path where responses will be saved. |
retries | number | Number of retries for failed requests; use null for fire-and-forget. |
retryDelay | number | Delay between retries in milliseconds. |
retryOn | number[] | HTTP status codes to retry on. |
(note that with the CLI you may use camelCase or snake_case for options)
🧩 Contributing
Contributions to ak-fetch are welcome! Feel free to open issues or submit pull requests.
📝 License
ak-fetch is ISC licensed; use it however you wish.
5 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
10 months ago
11 months ago
11 months ago
11 months ago
12 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago