1.0.1 • Published 2 years ago

hx-easy-api v1.0.1

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

本插件集成开源请求库:luch-request 。具体使用方法可参考luch-request官方文档

安装

# 项目依赖安装,在项目根目录下执行
npm i hx-easy-api

使用

// 引入 /service/index.js
import {init, api} from 'hx-easy-api'

// 请求配置
init({
  // baseURL
  baseURL: 'http://xxx.com',
  // 超时时间
  timeout: 60*1000,
  // 请求头
  header:{
    'content-type': 'application/json;',
  },
  // 请求拦截
  request: (config)=>{
    // ...
    return config
  },
  response: (res)=>{
    // ...
    return res
  }
})

// api配置
api({
  login_p: 'login',
  logout: 'logout',
  // ......
})

// 使用 /pages/home/index.vue
import service from  '@/service'

service.login({
  //......
}).then(res=>{})

service.logout().then(res=>{})

spi 配置

  /**
   * 配置说明:
   * api 接收一个配置对象;
   * key 为接口别名或模块名;
   * 当key为别名时, 需配置接口method: _g - get(默认, 可省略), _p - post, _u - upload, _d - download;
   * 当key为模块名时, 其value则为接口别名对象; 如: 
   * new: {
   *  edit_p: 'edit',
   *  page_p: 'page'
   * }
   * 上述接口可无限嵌套 如:
   * modelA:{
   *  modelB:{
   *    modelC:{
   *      funName_method: '......'
   *    }
   *  }
   * }
   * 则最终请求为: baseUrl/modelA/modelB/modelC/funName
   * 
   */


  /**
  * 假设有如下api:
  * POST - /api/account/login
  * GET - /api/account/logout
  * POST - /api/common/upload
  * GET - /api/news/info
  * POST - /api/news/add
  * POST - /api/news/edit
  * POST - /api/news/page
  * GET - /api/news/delete
  * GET - /api/art/list
  * POST - /api/art/article/info
  * POST - /api/art/article/page
  * POST - /api/art/article/add
  * GET - /api/art/article/delete
  * GET - /api/art/detail/info
  *  ......
  * 配置示例如下:
  */
 init({
  //......
  baseURL: 'https://xxx.com/api'
 })

 api({
  account:['login_p','logout'],
  upload_u: 'common/upload',
  news:['info','add_p','edit_p','page_p','delete'],
  art:{
    // * 则取上级模块名 -  /art/list
    "*":['list'],
    article:['info','add_p','edit_p','page_p'],
    detail: ['info']
  }
 })