3.0.1 • Published 1 year ago

@irv/kong-client-public v3.0.1

Weekly downloads
101
License
Apache-2.0
Repository
gitlab
Last release
1 year ago

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

3.0.1

1 year ago

3.0.0

1 year ago

2.2.1

1 year ago

2.2.0

1 year ago

1.1.1

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.1.0

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago