0.1.3 • Published 4 years ago

vue-ga-http v0.1.3

Weekly downloads
4
License
MIT
Repository
-
Last release
4 years ago

工具介绍

基于axios及ES6的API层二次封装管理工具,可以有效帮助管理日常get、post、put、delete请求,使用方法简单,无需配置,即插即用!

安装方法

$ npm install vue-ga-http --save

使用方法

//main.js
import VueGaHttp from 'vue-ga-http' //引入模块
import { API_LIST } from './api/index'; //接口管理文件

//OPTIONS与axios配置一致
const OPTIONS = {
  baseURL: 'http://127.0.0.1:3000/', 
  timeout: 10000,
  withCredentials: true
};
Vue.use(VueGaHttp, { API_LIST, OPTIONS });

入口文件 附带命名空间防止冲突

// api/index.js 

import  USER_LIST  from './user' 
import  ARTICLE_LIST  from './article'
//增加命名空间
const API_LIST = {
    user:USER_LIST,
    article:ARTICLE_LIST
}
export { API_LIST };

这里定义需要管理的文件

// api/user.js

const BASE = '/user'

const API_LIST = [
    {
        name:'login',
        url:'/login',
        method:'post',
        desc:"用户登陆"
    },
    ...
    {
        name:'deleteUser',
        url:'/delete/:id',
        method:'delete',
        desc:"根据id删除某个用户",
        configurable:'id'
    },
]
export default API_LIST.map(item=>{
    item.url = BASE + item.url;
    return item;
})

version:0.0.2

功能介绍:

  1. 基本请求、响应拦截器
  2. 可以分模块管理API(类似vuex中的module)
  3. 支持.then 和 async await两种请求方式
  4. 支持post、put方法携带queryString

支持的场景:

  1. 普通异步get、post、put、delete请求(所有方法书写一致)
  login(){
      let params = {};
      params.username = '111';
      params.password = '222';
      this.$http.user.login(params).then(res=>{
          console.log(res);
      })
  }
  1. 异步->同步请求
async logout(){
    let res = await this.$http.user.logout();
    console.log(res);
}
  1. post请求携带body参数和queryString参数
 login(){
      let params = {};
      params.username = '111';
      params.password = '222';
      let query = {};
      qeury.id = '111';
      this.$http.user.login(params,query).then(res=>{
          console.log(res);
      })
      //url: http://127.0.0.1:3000/user/login?id=111  method:post
  }
  1. 可传参使用同一URL配置(/who/article ===> /you/article || /my/aritcle)

  2. 可支持动态路由(/aritcle/:id ===> /article/123 || /article/456)

4和5 功能基本一致 只是场景不同,需要在API_LIST中定义好可配置项configurable

 login(){
      let params = {};
      params.username = '111';
      params.password = '222';
      const id  = 'aaa';
      this.$http.user.deleteUser(id,params,query).then(res=>{
          console.log(res);
      })
      //url: http://127.0.0.1:3000/user/deleteUser/aaa method:delete
  }
0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago