Request wrapper core for consuming third party services.
Whenever you need to communicate with third party API to get or save data from own codebase, you would have to perform a set of common steps such as login, query, etc. Trembita.js is doing the same by abstracting the innards of the actual REST calls to third-party API and exposing only the developer relevant details. Trembita.js supports plugins which are API connectors that are exposing methods for API communication. Each plugin is describing another third-party service. It performs these commonly used functions - creates requests, parses responses, handles errors etc.
The goal of this module is not only to provide you with a simple interface but the implementation of commonly used tools out of the box. This is a core module to reuse with plugins each for a different third-party service.
Trembita API wrapper plugin lets you call itself instead of the API directly. Well what happens if you want to change from one API to another? Now you have to rewrite ALL of your code. If you used a wrapper then all you have to do is change the wrapper and you are done.
Using npm:
npm install trembita
Using yarn:
yarn add trembita
Trembita is not supposed to be used directly, rather than to develop plugins/clients.
In order you can use a third party service by implementing your plugin, make sure you fill the next requirements:
- Extend Trembita module.
- Construct the plugin by implementing the properties inherited from Trembita module.
- Define the methods that contains the logic that expose third party library logic you want to use.
One example of usage would be:
const clientOptions = {
headers: {
header1: 'xxx',
header2: 'yyy'
},
endpoint: 'http://serviceapi.com'
};
const MyAPIClient = class MyAPIClient extends Trembita {
constructor(options) {
super(...arguments);
this.getData = paramsQueryString => {
const params = {
url: `api/path/`,
qs: paramsQueryString,
expectedCodes: [200, 401, 403, 404],
headers: {
header1: this.header1,
header2: this.header2
}
};
return this.request(params);
};
}
};
const client = new MyAPIClient(clientOptions);
See the contribute file!
MIT © 2018