Base class for building Adobe API clients
A base class for building API clients for Adobe solutions running on the Adobe.IO API gateway.
This package is build upon adobe-fetch which handles the low level API call, JWT authentication, token caching and storage.
npm install --save @adobe/api-client-base
- Option A - Provide an adobefetch instance:
const { BaseClient } = require('@adobe/api-client-base');
const config = {
auth: { ... See adobe/fetch documentation for details ... }
};
const adobefetch = require('@adobe/fetch').config(config);
const client = new BaseClient(adobefetch, { rootPath: '/path/to/api' });
- Option B - Provide the auth configuration, adobefetch will be instantiated automatically:
const { BaseClient } = require('@adobe/api-client-base');
const client = new BaseClient(adobefetch, {
auth: { ... See adobe/fetch documentation for details ... },
rootPath: '/path/to/api'
});
To create your own API client class, extend BaseClient and override the default options function. Then you can create helper methods for calling specific APIs.
For example:
const { BaseClient } = require('@adobe/api-client-base');
class MyApiClient extends BaseClient {
constructor(fetch, opts) {
super(fetch, opts);
this.someParameter = opts.someParameter;
}
_default() {
return {
name: 'myapi',
gateway: 'https://myapi.adobe.io',
rootPath: '/path/to/api',
headers: {
'x-some-header': 'some-value'
}
};
}
// Call https://myapi.adobe.io/path/to/api/foo/bar
getFooBar(parameters = {}) {
const path = this.addParamsToPath('/foo/bar', parameters);
return this.get(path);
}
Contributions are welcomed! Read the Contributing Guide for more information.
This project is licensed under the Apache V2 License. See LICENSE for more information.