node-fetch-client
v1.0.0
Published
NodeJS Fetch client wrapping node-fetch
Downloads
3
Maintainers
Readme
node-fetch-client
NodeJS Rest API Client module wrapping infamous node-fetch
Why this module
Intention behind this module is expose cleaner API by wrapping node-fetch
and provide a simpler timeout support for API calls.
This module supports working with JSON
type and Binary data Buffer
type simply because those are commonly used data types across networks.
How to use
const APIClient = require('node-fetch-client');
const api = new APIClient({ headers: { 'content-type': 'application/json '}});
...
try {
const result = await api.get('http://localhost:3000/');
} catch(error) {
}
API
New object needed to created (by providing common configs, if any) to call relevant Http method.
const APIClient = require('node-fetch-client');
const api = APIClient(commonConfigs);
commonConfigs :
Any allowed configs to node-fetch API. These are common configs.
Call the relevant Http method with the url
and specific configs.
const result = api.get('http://localhost:3000', configs);
configs :
Any allowed configs to node-fetch API. These are method and API call relevant specific configs.
result
will the json
response from the API call.
Allowed Http method
GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
api.(get|post|put|patch|delete|head|options|download*)
*Special method - download
: This method can be used to handle binary data in a response.
Default Http method of download
is POST
but this can be changed by passing method
to configs
object.
CommonConfig and configs
At final API caller stage, commonConfigs and configs are merged. Example is given below
const commonConfig = {
headers: {
'content-type': 'application/json',
'user-agent': 'api-caller',
},
timeout: 20000,
}
const configs = {
headers: {
'accept': 'application/json'
},
timeout: 50000,
}
// Final configs will be
{
headers: {
'content-type': 'application/json',
'user-agent': 'api-caller',
'accept': 'application/json'
},
timeout: 50000, // precedence given to configs
}
Timeout
10s
default timeout is provided. timeout
can be passed commonConfigs
or configs
objects as required.
Limitations
As described earlier support is given to Json
and binary
formats only. Further result
from API calls will be the
Json
or binary
content only.
If the raw response
object required, this API can be extended.