UNPKG

vue-api-request

Version:

Control your API calls by using an amazing component which supports axios and vue-resource

141 lines (103 loc) 3.43 kB
<p align="center"> <img width="256" height="256" src="https://ftgibran.github.io/static/v-api@512.png" alt="Vue API Request"/> <br> <a href="https://www.npmjs.com/package/vue-api-request"><img src="https://img.shields.io/npm/v/vue-api-request.svg"></a> <a href="https://www.npmjs.com/package/vue-api-request"><img src="https://img.shields.io/npm/dt/vue-api-request.svg"></a> <a href="https://www.npmjs.com/package/vue-api-request"><img src="https://img.shields.io/npm/l/vue-api-request.svg"></a> </p> # 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](https://ftgibran.github.io/#/vue-api-request) ## Installation Package is installable via NPM ```bash $ npm i vue-api-request --save ``` **or** via Yarn ```bash $ yarn add vue-api-request ``` **or** via CDN ```html <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](https://jsfiddle.net/gibranmax/everjv20/) ## Basic Usage You have to import the library and use as a Vue plugin to enable the functionality globally on all components. ```javascript import Vue from 'vue' import VueApiRequest from 'vue-api-request' Vue.use(VueApiRequest) ``` ### Example ```html <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 ```javascript 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: ```html <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](https://ftgibran.github.io/#/vue-api-request) to further informations. ## Contributing ``` bash # 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](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). ## License [MIT](https://opensource.org/licenses/MIT) Copyright (c) 2017 Felipe Gibran <ftgibran>