@rbipin/http-client
v1.0.1
Published
A simple wrapper around axio http client with auth token management
Downloads
4
Readme
http-client
A wrapper over axios http client to make authentication and token management easier
Authors
Documentation
Use the HttpClientFactory
to create a HttpClient
.
The createClient method of the HttpClientFactory
takes a HttpConfiguration
object.
HttpConfiguration
interface can be used to configure the HttpClient
, like setting up the base url for the HttpClient
.
If HttpConfiguration
is not passed then the basic HttpClient
` is returned
Usage for a simple HttpClient
const httpConfig: HttpConfiguration = {
baseUrl: 'http://localhost:3000',
};
const httpClientFac = new HttpClientFactory();
const httpClient = httpClientFac.CreateClient(httpConfig); // basic http client
const response: HttpResponse<Data> = await httpClient.get('/posts/1');
Usage for a Client with OAuth
const basicAuthConfig: basicAuthConfig = new BasicAuthConfig (
'http://localhost:4200/api-token',
'<client id>',
'<client secret>'
);
const httpConfig: HttpConfiguration = {
baseUrl: 'http://localhost:3000',
authConfig: oauthConfig,
};
const httpClientFac = new HttpClientFactory();
const httpClient = httpClientFac.CreateClient(httpConfig); // basic auth client
const response: HttpResponse<Data> = await httpClient.get('/posts/1');
Usage for a Client with OAuth
const oauthConfig: OAuthConfig = new OAuthConfig (
'http://localhost:4200/api-token',
'<client id>',
'<client secret>',
'<audience>',
'<scope[]>'
);
const httpConfig: HttpConfiguration = {
baseUrl: 'http://localhost:3000',
authConfig: oauthConfig,
};
const httpClientFac = new HttpClientFactory();
const httpClient = httpClientFac.CreateClient(httpConfig); // OAuth client
const response: HttpResponse<Data> = await httpClient.get('/posts/1');
Running Tests
To run tests, run the following command, this starts a mock api and then runs the tests againsts the mock api server
npm run test