An easy api client builder for applications with identity.
- API builder is ready for SPA development
- OAuth identity mechanism included
$ npm install @reactway/api-builderTo start using api builder first it needs to make an ApiConfiguration with structure (host field is required). Then initiate class with created configuration.
interfaceApiConfiguration{host: string;path?: string;defaultHeaders?: {[index: string]: string};defaultAuthRequired?: boolean;identity?: IdentityMechanism;defaultQueryParams?: QueryParams;requestQueueLimit?: number;}constapiConfiguration: ApiConfiguration={host: "https://example.com"};constApiClient=newApiBuilder(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.
constgetExample: ApiRequest={method: HttpMethods.GETrequestPath: PATH_GET};constgetExample=(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.
interfacePerson{name: string;surname: string;}constgetExample=awaitapiBuilder.post<Person>({requestPath: "/post",body: {name: "John",surname: "Snow"}});Also you can pass QueryParams.
typeQueryParams={[key: string]: string|number|Array<string|number>};constgetExample: ApiRequest={method: HttpMethods.GETrequestPath: PATH_GET,queryParams: {page: 2}};WIP
WIP
Released under the MIT license.