@irv/kong-client-public
v3.0.1
Published
Signs API requests according to Kong 1.0 specifications.
Downloads
217
Maintainers
Keywords
Readme
Kong Client
Wraps the node-fetch
api with kong signing.
Usage
const kongClient = require('@irv/kong-client-public');
// Constructor takes an OBJECT containing the following fields
const client = new kongClient.Client({
baseUrl, // The api url you are trying to reach
username, // The Kong username from system admin
secret, // The Kong secret from system admin
isSigningEnabled = false, // Default is false. Kong 1.0 compatible signing.
timeout = 300000, // Default timeout
});
// Make api calls using fetch
client.fetch('https://httpbin.org/post', { method: 'POST', body: 'a=1' })
.then(res => res.json()) // expecting a json response
.then(json => console.log(json));
Note: baseUrl
is optional for the client. If no baseUrl
is provided, the client will use path
in the fetch call as the url. If provided, client will concatenate baseUrl
and path
Hooks
You can add pre and post request hooks to the client. These callbacks will be executed before and after every request (like middleware).
// Pre Request Hook
const logReqHook = (url: string, options?: RequestInit) => {
console.log(url, options);
};
// Post Request Hook
const logResHook = async (res: Response) => {
try {
const response = res.clone();
console.log(await response.json());
} catch (err) {} // DELETE and HEAD calls have no response, so response.json() will throw
};
// Attaching to client
client.beforeRequest(logReqHook);
client.afterRequest(logResHook);
Available Functions
fetch(path: string, options?: RequestInit): Promise<Response>
- Call to make any api request.
Function Parameters:
path
-[required]
(string)
Path that you want the api client to hit
options
- [optional]
(RequestInit)
that will be passed to the node-fetch
library. See the node-fetch
library HERE