/simple-api-client

Simple API Client for JavaScript

Primary LanguageJavaScriptMIT LicenseMIT

simple-api-client

Greenkeeper badge

NPM version Build Status Coverage Status Dependency Status DevDependency Status License

Simple API Client for JavaScript.

WIP

Installation

npm install --save @moqada/simple-api-client

Usage

JavaScript

import SimpleAPIClient from '@moqada/simple-api-client';

class APIClinet extends SimpleAPIClient {

  constructor({token, custom}: {token: string, custom: string}) {
    super({endpoint: 'http://api.example.com/v1'});
    this.token = token;
    this.custom = custom;
  }

  getDefaultOptions(): Object {
    return {
      headers: {
        'Authorization': `Bearer ${this.token}`,
        'X-Custom-Header': `${this.custom}`
      }
    };
  }

  toResponse(error: ?Object, response: ?Object): Object {
    if (error) {
      return {error};
    }
    return {
      body: response.body
    };
  }

  getUsers(query): Promise<{body: Object}, {error: Object}> {
    return this.get('/users', {query});
  }
}

const clinet = new APIClinet({token: 'xxxxxxxyyyyy', custom: 'foobar'});
client.getUsers({offset: 20, limit: 10}).then(({body}) => {
  console.log(body);
}).catch(({error}) => {
  console.error(error);
}):

TypeScript

A import style is different from JavaScript.

import {SimpleAPIClient} from '@moqada/simple-api-client';

Todo

  • Test
  • Support TypeScript (experimental)

Related