@reactway/api-builder
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

NPM version Build Status Code coverage Dependencies Dev dependencies

@reactway/api-builder

An easy api client builder for applications with identity.

Features

  • API builder is ready for SPA development
  • OAuth identity mechanism included

Get started

$ npm install @reactway/api-builder

To start using api builder first it needs to make an ApiConfiguration with structure (host field is required). Then initiate class with created configuration.

interface ApiConfiguration {
    host: string;
    path?: string;
    defaultHeaders?: { [index: string]: string };
    defaultAuthRequired?: boolean;
    identity?: IdentityMechanism;
    defaultQueryParams?: QueryParams;
    requestQueueLimit?: number;
}

const apiConfiguration: ApiConfiguration = {
    host: "https://example.com"
};

const ApiClient = new ApiBuilder(apiConfiguration);

To make request you have create an ApiRequest typed object or arrow function if you want to pass parameters. method and requestPath fields are required for ApiRequest.

const getExample: ApiRequest = {
    method: HttpMethods.GET
    requestPath: PATH_GET
};

const getExample = (id: number): ApiRequest => {
    return {
        method: HttpMethods.GET,
        requestPath: `/${id}`
    };
};

Only http(s) method GET does not take body param. Rest of methods takes passed typed body. To pass typed body to a request here is an example.

interface Person {
    name: string;
    surname: string;
}

const getExample = await apiBuilder.post<Person>({
    requestPath: "/post",
    body: {
        name: "John",
        surname: "Snow"
    }
});

Also you can pass QueryParams.

type QueryParams = { [key: string]: string | number | Array<string | number> };

const getExample: ApiRequest = {
    method: HttpMethods.GET
    requestPath: PATH_GET,
    queryParams: {
        page: 2
    }
};

API

WIP

Documentation

WIP

License

Released under the MIT license.

Package Sidebar

Install

npm i @reactway/api-builder

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

41.6 kB

Total Files

21

Last publish

Collaborators

  • martynas-zilinskas
  • quatrodev
  • reactway-dev