An easy api client builder for applications with identity.
- API builder is ready for SPA development
- OAuth identity mechanism included
$ 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
}
};
WIP
WIP
Released under the MIT license.