ApiClient

ApiClient class is a wrapper around axios.

It provides the same set of methods to make requests to the API. Also, it provides a way to add interceptors to the request/response cycle.

Constructor

new ApiClient(httpClient, instanceConfig)

ApiClient constructor

Parameters:
NameTypeDescription
httpClientObject | Axios

Http client or axios instance

instanceConfigAxiosRequestConfig | Object

Config defaults for the instance

Members

defaults

Returns default configuration

defaults

Set default configuration value

Example
import axios from 'axios';

const apiClient = new ApiClient(axios);

apiClient.defaults.headers.common['X-Test'] = 'test';
api.defaults.baseURL = 'https://example.com';
api.defaults.timeout = 100;

console.log(api.defaults.headers.common['X-Test'])
test

console.log(api.defaults.baseURL)
https://example.com

console.log(api.defaults.timeout)
100

interceptors

Interceptors getter

Methods

addRequestInterceptor(onFulfilled, onRejectedopt) → {Number}

Add a request interceptor

Parameters:
NameTypeAttributesDefaultDescription
onFulfilledfunction

Any status code that lie within the range of 2xx cause this function to trigger

onRejectedfunction<optional>
null

Any status codes that falls outside the range of 2xx cause this function to trigger

Returns:

An ID used to remove interceptor later

Type: 
Number

addResponseInterceptor(onFulfilled, onRejectedopt) → {Number}

Add a response interceptor

Parameters:
NameTypeAttributesDefaultDescription
onFulfilledfunction

Any status code that lie within the range of 2xx cause this function to trigger

onRejectedfunction<optional>
null

Any status codes that falls outside the range of 2xx cause this function to trigger

Returns:
  • An ID used to remove interceptor later
Type: 
Number

delete(url, configopt) → {Promise.<AxiosResponse.<any>>}

Performs DELETE Request

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url Request url

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<AxiosResponse.<any>>

get(url, configopt) → {Promise.<AxiosResponse.<any>>}

Performs GET Request

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url Request url

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<AxiosResponse.<any>>

getUri(configopt) → {string}

Returns the URL for making request

Parameters:
NameTypeAttributesDescription
configObject<optional>

The config specific for this request (merged with defaults)

Returns:
Type: 
string

Performs HEAD Request

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url Request url

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<AxiosResponse.<any>>

options(url, configopt) → {Promise.<AxiosResponse.<any>>}

Performs OPTIONS Request

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url Request url

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<AxiosResponse.<any>>

patch(url, dataopt, configopt) → {Promise.<AxiosResponse.<any>>}

Performs PATCH Request

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url

datastring | Object | ArrayBuffer | ArrayBufferView | URLSearchParams | FormData | File | Blob | Stream | Buffer<optional>
null

The data to be sent as the request body. Browser only: FormData, File, Blob. Node only: Stream, Buffer.

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<AxiosResponse.<any>>

patchForm(url, dataopt, configopt) → {Promise.<axios.AxiosResponse.<any>>}

Performs PATCH Request with FormData

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url

datastring | Object | ArrayBuffer | ArrayBufferView | URLSearchParams | FormData | File | Blob | Stream | Buffer<optional>
null

The data to be sent as the request body. Browser only: FormData, File, Blob. Node only: Stream, Buffer.

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<axios.AxiosResponse.<any>>

post(url, dataopt, configopt) → {Promise.<AxiosResponse.<any>>}

Performs POST Request

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url

datastring | Object | ArrayBuffer | ArrayBufferView | URLSearchParams | FormData | File | Blob | Stream | Buffer<optional>
null

The data to be sent as the request body. Browser only: FormData, File, Blob. Node only: Stream, Buffer.

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<AxiosResponse.<any>>

postForm(url, dataopt, configopt) → {Promise.<axios.AxiosResponse.<any>>}

Performs POST Request with FormData

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url

datastring | Object | ArrayBuffer | ArrayBufferView | URLSearchParams | FormData | File | Blob | Stream | Buffer<optional>
null

The data to be sent as the request body. Browser only: FormData, File, Blob. Node only: Stream, Buffer.

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<axios.AxiosResponse.<any>>

put(url, dataopt, configopt) → {Promise.<AxiosResponse.<any>>}

Performs PUT Request

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url

datastring | Object | ArrayBuffer | ArrayBufferView | URLSearchParams | FormData | File | Blob | Stream | Buffer<optional>
null

The data to be sent as the request body. Browser only: FormData, File, Blob. Node only: Stream, Buffer.

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<AxiosResponse.<any>>

putForm(url, dataopt, configopt) → {Promise.<axios.AxiosResponse.<any>>}

Performs PUT Request with FormData

Parameters:
NameTypeAttributesDefaultDescription
urlString

Request url

datastring | Object | ArrayBuffer | ArrayBufferView | URLSearchParams | FormData | File | Blob | Stream | Buffer<optional>
null

The data to be sent as the request body. Browser only: FormData, File, Blob. Node only: Stream, Buffer.

configObject<optional>
{}

Request config

Returns:
Type: 
Promise.<axios.AxiosResponse.<any>>

removeRequestInterceptor(id)

Remove a Request interceptor from the stack

Parameters:
NameTypeDescription
idNumber

The ID that was returned by addRequestInterceptor

removeResponseInterceptor(id)

Remove a Response interceptor from the stack

Parameters:
NameTypeDescription
idNumber

The ID that was returned by addResponseInterceptor

request(config) → {Promise.<AxiosResponse.<any>>}

Dispatch a request

Parameters:
NameTypeDescription
configObject

The config specific for this request (merged with defaults)

Returns:
Type: 
Promise.<AxiosResponse.<any>>