Skip to content

espiliauskas/js-lib-http-client-common

 
 

Repository files navigation

@paysera/http-client-common

Axios requests wrapper.
Basically we use this library in our generated JS clients from RAML.

Installation

npm i @paysera/http-client-common

Include files:

<script type="text/javascript" src="dist/main.js"></script>

Dependencies

Usage

Without any middleware

import { createClient, createRequest } from '@paysera/http-client-common';

const client = createClient({
    baseURL: 'https://demo.com',
});

client.performRequest(createRequest('get', '/list'));

With JWT authentication middleware(with session storage token provider)

In this example client.performRequest makes request with Authorization: 'Bearer {accessToken}' header

import { 
    createClient, 
    createRequest,
    JWTAuthenticationMiddleware,
    SessionStorageTokenProvider,
    Scope,
} from '@paysera/http-client-common';

const client = createClient({
    baseURL: 'https://{shard_id}.demo.com/{locale}', // base url with parameters
    middleware: [
        new JWTAuthenticationMiddleware(
            new Scope('scope:a'),
            new SessionStorageTokenProvider(
                (scope) => ({ scope, accessToken: 'created-token' }), 
                (scope) => ({ scope, accessToken: 'refreshed-token' }),
                'unique',
                'namespace',   
            ),
        ),
    ],
    options: {
        urlParameters: {
            // list of url parameters
        }
    }
});

client.performRequest(createRequest('get', '/list'));

Write your own middleware

class MyCustomMiddleware {
    async onRequest(config) {
        // here you can make some changes to config object
        return config;
    }
        
    async onResponseError(error) {
        // here you can make some changes to error response
        return error;
    }
}

Under the hood middleware use axios interceptors, so basically middleware is wrapper for axios interceptors. More about axios interceptors you can read here

  • onRequest(config) - will be called every time before making request.
  • onResponseError(error) - will be called every time after request returns error

Demo run

npm run dev

Build

npm run build

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%