@arundo/microservice-interface
v3.1.2
Published
[![Coverage Status](https://coveralls.io/repos/github/arundo/microservice_interface_library/badge.svg?t=SoXyxY)](https://coveralls.io/github/arundo/microservice_interface_library) [![Build Status](https://travis-ci.com/arundo/microservice_interface_librar
Downloads
30
Readme
Microservice Interface Library
This is microservice interface library that used to easily connect to other arundo fabric microservice easily.
Implementation Details
How to install it
$ npm install --save-dev arundo/microservice-interface
Rest client
Rest client is used to easily and efficiently call the arundo fabric microservices endpoints without worrying about fetching the auth token. The token can be fetched either from the auth fabric microservice or auth0 directly. You can also cache the token in redis.
// apiBaseUrl is required
const apiBaseUrl = 'https://api.arundo.com';
// authOptions is required
const authOptions = {
user: 'USER ID', // required
password: 'USER PASSWORD', // required
fromAuth0: 'true | false', // optional
auth0BaseUrl: 'AUTH0 BASE URL', // optional
clientId: 'AUTH0 CLIENT ID', // optional
clientSecret: 'AUTH0 CLIENT SECRET', // optional
audience: 'AUTH0 AUDIENCE', // optional
devUrl: 'URL for local service instance for dev purposes, still using auth service to get token'// optional, e.g. 'http://localhost:5000'
};
// redisOptions is optional
const redisOptions = {
host: 'REDIS HOST', // required
password: 'REDIS PASSWORD', // required
name: 'UNIQUE NAME FOR REDIS KEY', // optional
expireTime: 'REDIS EXPIRATION TIME', // optional
};
const restClient = new RestClient(apiBaseUrl, authOptions, redisOptions);
const id = 'YOUR ID HERE';
restClient.callEndPoint('GET', `/v0/services/${id}`)
.then(result => console.log(result))
.catch(err => console.log(err));
Cache client
Cache client is used to cache a document.
// apiBaseUrl is required
const apiBaseUrl = 'https://api.arundo.com';
// authOptions is required
const authOptions = {
user: 'USER ID', // required
password: 'USER PASSWORD', // required
fromAuth0: 'true | false', // optional
auth0BaseUrl: 'AUTH0 BASE URL', // optional
clientId: 'AUTH0 CLIENT ID', // optional
clientSecret: 'AUTH0 CLIENT SECRET', // optional
audience: 'AUTH0 AUDIENCE', // optional
};
// redisOptions is optional
const redisOptions = {
host: 'REDIS HOST', // required
password: 'REDIS PASSWORD', // required
name: 'UNIQUE NAME FOR REDIS KEY', // optional
expireTime: 'REDIS EXPIRATION TIME', // optional
};
const myClientOptions = {
name: 'pipeline',
url: `${apiBaseUrl}/v0/pipelines/%s/`,
};
const restClient = new RestClient(apiBaseUrl, authOptions, redisOptions);
const cacheClient = new CacheClient(restClient, redisOptions);
const myClient = cacheClient.createClient(myClientOptions);
const id = 'YOUR DOC ID HERE';
myClient.get(id)
.then(doc => console.log(doc))
.catch(err => console.log(err));