Skip to content

rbipin/http-client

Repository files navigation

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published