service-request-client
v0.0.7
Published
An extension to request to facilitate making requests against discoverable HTTP services
Readme
Service Request Client
Utility module for making HTTP requests against discoverable HTTP services.
Supported service discovery technologies include:
- Container DNS
- ZooKeeper (to be added in the future)
- Consul (to be added in the future)
- Basic Host Port
Basic Usage
The following is the most basic example of a Container DNS client:
'use strict';
const Client = require('service-request-client').ContainerDNSClient;
// Instantiate a client
const client = new Client(
'service-name',
8001,
'my/service/path/v1',
{
verbose: true,
retries: 2,
timeoutMs: 3000,
correlationHeaderName: 'X-Unity-CorrelationID'
}
);
const query = {
"myParam": "myValue"
};
const headers = {
"Content-Type": "application/json"
};
const body = {
"prop1": "value1",
"prop2": "value2"
};
// Invoke a GET request against the service endpoint (promise style)
client.get('item/search', { query, headers })
.then(res => console.log(res.body))
.catch(err => console.log(err));
// Invoke a GET request against the service endpoint (async/await style)
let res;
try {
res = await client.get('item/search', { query, headers });
console.log(res.body);
} catch (err) {
console.log(err);
}
// Invoke a PUT request against the service
client.put('item', { query, headers }, body)
.then(res => console.log(res.body))
.catch(err => console.log(err));
// Invoke a POST request against the service
client.post('item', { query, headers }, body)
.then(res => console.log(res.body))
.catch(err => console.log(err));
// Invoke a DELETE request against the service
client.delete('item', { query, headers }, body)
.then(res => console.log(res.body))
.catch(err => console.log(err));
// Invoke a GET request against the service
client.method('GET', 'item/search', { query, headers }, body)
.then(res => console.log(res.body))
.catch(err => console.log(err)); The following is the most basic example of a Host Port client:
'use strict';
const Client = require('service-request-client').HostPortClient;
// Instantiate a client
const client = new Client(
'api.test.io',
80,
'v1',
{
verbose: true,
retries: 2,
timeoutMs: 3000
}
);
const query = {
"myParam": "myValue"
};
const headers = {
"Content-Type": "application/json"
};
const body = {
"prop1": "value1",
"prop2": "value2"
};
// Invoke a GET request against the service endpoint (promise style)
client.get('item/search', { query, headers })
.then(res => console.log(res.body))
.catch(err => console.log(err));
// Invoke a GET request against the service endpoint (async/await style)
let res;
try {
res = await client.get('item/search', { query, headers });
console.log(res.body);
} catch (err) {
console.log(err);
}
// Invoke a PUT request against the service
client.put('item', { query, headers }, body)
.then(res => console.log(res.body))
.catch(err => console.log(err));
// Invoke a POST request against the service
client.post('item', { query, headers }, body)
.then(res => console.log(res.body))
.catch(err => console.log(err));
// Invoke a DELETE request against the service
client.delete('item', { query, headers }, body)
.then(res => console.log(res.body))
.catch(err => console.log(err));
// Invoke a GET request against the service
client.method('GET', 'item/search', { query, headers }, body)
.then(res => console.log(res.body))
.catch(err => console.log(err)); 
