@trapi/client

A REST client based on axios.

Usage no npm install needed!

<script type="module">
  import trapiClient from 'https://cdn.skypack.dev/@trapi/client';
</script>

README

@trapi/client

main codecov Known Vulnerabilities npm version

This is a simple REST client based on axios.

Table of Contents

Installation

npm install @trapi/client --save

Usage

Config

To create a configuration for the Client, a configuration must be specified, like described in the following:

Client

import {
    setConfig
} from "@trapi/client";

setConfig({
    driver: {
        baseURL: 'http://localhost:3000/',
        withCredentials: true,
    },
}, 'key')

A configuration is always identified by a key, so multiple configurations can be registered. The default key is named: default

In the upper example, the driver property is used to pass information to the underneath driver (axios).

Singleton

A singleton instance associated for a given configuration key, can be acquired like described in the following:

Client

import {
    useClient
} from "@trapi/client";

const client = useClient('key');
client.setAuthorizationHeader({
    type: 'bearer',
    token: 'xxx'
})

(async () => {
    const {data} = await client.get('users');
    console.log(data);
    // [{id: 1, name: 'Peter'}]
})();

Header

The main purpose of the header utils, is to parse and build HTTP headers.

AuthorizationHeader

import {
    parseAuthorizationHeader,
    stringifyAuthorizationHeader
} from "@trapi/client";

const basicValue = Buffer
    .from('admin:start123')
    .toString('base64');

const value = parseAuthorizationHeader(`Basic ${basicValue}`);
console.log(value);
// {type: 'Basic', username: 'admin', password: 'start123'}

// -------------------------------------------------

let headerValue = stringifyAuthorizationHeader({
    type: 'Basic',
    username: 'admin',
    password: 'start123'
});
console.log(headerValue);
// Basic xxxxxxx

headerValue = stringifyAuthorizationHeader({
    type: 'Bearer',
    token: 'start123'
});
console.log(headerValue);
// Bearer start123