README
@trapi/client
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