1.0.1 • Published 4 years ago

axios-fg v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

axiox-fg

基于axios做的一层简单封装成npm包形式,主要就是解决简单转发都要写大量的多余代码,增加开发的时间。

TODO: 后期还有很大优化空间,但是,先这样,后面有时间再说。

axios koa

Installing

Using npm:

$ npm install axios-fg -S

Example

只需要看懂,3个配置代表3个不一样的东西就很好理解了,配置axios_config(axios库配置,看官网), interceptor_config(拦截器配置),和api_config(api相关的配置),就很好理解了

只取封装的axios的实例

const {Client} = require('axios-fg');
/**
 * 基本的axios实例配置
 * @param {object} payload 拦截器和axios实例配置
 * @param {object} [payload.axios_config] axios的配置 https://github.com/axios/axios
 * @param {object} [payload.interceptor_config] 拦截器配置
 * @param {object} [payload.interceptor_config.logger] 日志
 * @param {object} [payload.interceptor_config.request_header] 设置拦截器请求头
 * @param {object} [payload.interceptor_config.export_headers] 设置拦截器返回拦截头
 */
const client = new Client({axios_config, interceptor_config})
// node -pe "require('./example.js').promise().then(console.log)"
exports.promise = async function () {
  const result = await client.remote({
    url: 'http://XXXXXX.com',
    method: 'get',
    params: {
      page_num: 0,
      page_size: 10,
    },
  });
  return result;
};

基于koa框架, 只需要把你的配置丢进去就完事了

只取封装的axios的实例,的基础上新增了api配置

/**
 * 接口配置
 * https://github.com/axios/axios
 * @param {object} payload 
 * @param {object} [payload.axios_config] axios的配置
 * @param {object} [payload.api_config.path_argument] 设置路径参数
 * @param {object} [payload.api_config.url] 
 * @param {object} [payload.api_config.data] 用于post请求的data
 * @param {object} [payload.api_config.params] 用于query参数
 */
const {remoteApiByKoa} = require('axios-fg');
// node -pe "require('./example.js').promise3().then(console.log)"
exports.promise3 = async function () {
  const result = await remoteApiByKoa({axios_config, interceptor_config}, {
  api_config: {
    url: 'http://XXXXXX/{id}/aaa/bbb',
    path_argument: {
      account_id: 123212,
    },
    method: 'get',
    params: {
      page_num: 0,
      page_size: 10,
    },
  },
})
  return result;
};