1. vue-api-request

vue-api-request

Vue API Request

Vue API Request

Vue API Request provides a full control on your APIs, making the calls simple, fast and easy to implement. Also, your code will be cleaner and more elegant.

Docs & Demo

Installation

Package is installable via NPM

 $ npm i vue-api-request --save

or via Yarn

 $ yarn add vue-api-request

or via CDN

 <script src="https://unpkg.com/vue-api-request@latest/dist/vue-api-request.min.js"></script>
<link href="https://unpkg.com/vue-api-request@latest/dist/vue-api-request.min.css" rel="stylesheet"/>

It will set window.VueApiRequest as the module.

See example in JSFiddle

Basic Usage

You have to import the library and use as a Vue plugin to enable the functionality globally on all components.

 import Vue from 'vue'
import VueApiRequest from 'vue-api-request'
Vue.use(VueApiRequest)

Example

 <api-request :resource="apiRequest" v-model="apiResponse">
  My stuffs to be shown when the API loads
</api-request>

Pre Configuration

You may also set your own default configuration, so you don't need to customize every time each ApiRequest component. You are still able to customize a specific component using props.

Example

 import Vue from 'vue'
import VueApiRequest from 'vue-api-request'

let options = {
  effect: 'lightSpeedIn',
  resp: 'body.foo.bar',
  spinner: 'DotLoader',
  spinnerColor: 'blue', //or #0000ff
  spinnerPadding: '2em',
  spinnerScale: 1.4,
  onSuccess: resp => {
    console.log('Success', resp)
  },
  onError: resp => {
    alert(`Error: ${resp.message}`)
  }
}

Vue.use(VueApiRequest, options)

The 'options' variable above is equivalent of:

 <api-request
  :resource="apiRequest"
  v-model="apiResponse"
  effect="lightSpeedIn"
  resp="body.foo.bar"
  spinner="DotLoader"
  spinner-color="blue"
  spinner-padding="2em"
  :spinner-scale="1.4"
  @success="successEvent"
  @error="errorEvent"
>
  My stuffs to be shown when the API loads
</api-request>

Go to Demo & Docs to further informations.

Contributing

 # clone project
git clone https://github.com/ftgibran/vue-api-request.git
cd vue-api-request

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# build for production and view the bundle analyzer report
npm run build --report

# run unit tests
npm run unit

# run e2e tests
npm run e2e

# run all tests
npm test

For detailed explanation on how things work, checkout the guide and docs for vue-loader.

License

MIT
Copyright (c) 2017 Felipe Gibran

Dependencies

autoprefixer: ^6.7.2axios: ^0.16.2babel-cli: ^6.23.0babel-core: ^6.26.0babel-eslint: ^7.1.1babel-loader: ^6.2.10babel-plugin-istanbul: ^4.1.1babel-plugin-transform-runtime: ^6.22.0babel-preset-env: ^1.3.2babel-preset-es2015: ^6.24.1babel-preset-stage-2: ^6.22.0babel-register: ^6.26.0chai: ^3.5.0chalk: ^1.1.3chromedriver: ^2.31.0connect-history-api-fallback: ^1.3.0copy-webpack-plugin: ^4.0.1cross-env: ^4.0.0cross-spawn: ^5.0.1css-loader: ^0.28.5eslint: ^3.19.0eslint-config-standard: ^6.2.1eslint-friendly-formatter: ^2.0.7eslint-loader: ^1.7.1eslint-plugin-html: ^2.0.0eslint-plugin-promise: ^3.4.0eslint-plugin-standard: ^2.0.1eventsource-polyfill: ^0.9.6express: ^4.15.4extract-text-webpack-plugin: ^2.0.0file-loader: ^0.11.1font-awesome: ^4.7.0friendly-errors-webpack-plugin: ^1.1.3gsap: ^1.20.2html-webpack-plugin: ^2.30.1http-proxy-middleware: ^0.17.3inject-loader: ^3.0.1karma: ^1.4.1karma-coverage: ^1.1.1karma-mocha: ^1.3.0karma-phantomjs-launcher: ^1.0.2karma-phantomjs-shim: ^1.4.0karma-sinon-chai: ^1.3.1karma-sourcemap-loader: ^0.3.7karma-spec-reporter: 0.0.30karma-webpack: ^2.0.2lolex: ^1.5.2mocha: ^3.5.0nightwatch: ^0.9.12opn: ^4.0.2optimize-css-assets-webpack-plugin: ^1.3.0ora: ^1.2.0phantomjs-prebuilt: ^2.1.15rimraf: ^2.6.0selenium-server: ^3.5.0semver: ^5.4.1shelljs: ^0.7.6sinon: ^2.4.1sinon-chai: ^2.13.0url-loader: ^0.5.8vue: ^2.3.3vue-loader: ^12.1.0vue-resource: ^1.3.4vue-router: ^2.6.0vue-style-loader: ^3.0.1vue-template-compiler: ^2.3.3vue-template-es2015-compiler: ^1.5.3webpack: ^2.6.1webpack-bundle-analyzer: ^2.9.0webpack-dev-middleware: ^1.12.0webpack-hot-middleware: ^2.18.0webpack-merge: ^4.1.0