buildapi

0.5.0 • Public • Published

buildapi

install

npm install buildapi

How

buildapi has two exports.

import buildapi, { Route } from 'buildapi'

buildapi

This is API builder function.

Route class

Define route extending Route class. In Route class, you can use methods below.

const fileId = 'dkfjaklfjdkfldjsflksdf'
const file = evt.file // File event object.
 
this.put(
  // set endpoint on first argument.
  `file/update/${fileId}`,
  // you can set post data on second argument.
  { key1: 'value1' },
  // you can set multipart/form-data values on third argument.
  { data: file }
)
  • get
  • post
  • put
  • delete
  • head
  • option
  • download

Usage

At first, define your routes extending Route object.

file_route.js

import { Route } from 'buildapi'
const e = encodeURIComponent
 
export default class File extends Route {
  fetchPermissions(id, cursor) {
    return this.get(`file/permissions/${e(id)}`, { cursor })
  }
  download(fileId) {
    return this.download(`file/data/${e(fileId)}`)
  }
  setAttribute(fileId, key, value) {
    return this.put(`file/attr/${e(fileId)}/${e(key)}/${e(value)}`)
  }
  delete(fileId) {
    return this.delete(`file/${e(fileId)}`)
  }
  fetchData(fileId) {
    return this.get(`file/data/${e(fileId)}`)
  }
  fetch(fileId) {
    return this.get(`file/${e(fileId)}`)
  }
  fetchChunk(fileId, chunkId, from, length) {
    return this.get(`file/data/${e(fileId)}/${e(chunkId)}/${e(from)}/${e(length)}`)
  }
  uploadChunk(fileId, chunkIndex, offset, length, file) {
    return this.put(`file/data/${e(fileId)}/${e(chunkIndex)}/${e(offset)}/${e(length)}`, {}, { data: file })
  }
}

And build your api with buildapi.

api.js

import buildapi from 'buildapi'
 
const routes = { File }
 
module.exports = buildapi({ routes, api: 'https://api.fata.io/v0/' })
 

And use api.

import API from './api.js'
 
const api = new API({
  // you can override api point.
  api: 'staging.server.api'
})
 
// access to endpoint.
api.file.fetchData('testsetsetset') // return Promise object
  .then(res => {
    //...
  })
  .catch(err => {
    console.error(err.status)
  })

Authorize support

buildapi supports Oauth token.

const api = new API() // instanciate your api.
api.setToken('fsjdkfjdlkfjdsfklsdjflksdf')
 

This set request header Authorization section internally.

req.set('Authorization', 'Bearer ' + tokenString)

Author

Yusuke Shibata

Lisense

MIT

Dependents (1)

Package Sidebar

Install

npm i buildapi

Weekly Downloads

4

Version

0.5.0

License

MIT

Last publish

Collaborators

  • yusukeshibata