axios-fg
v1.0.1
Published
封装axios拦截器
Downloads
3
Readme
axiox-fg
基于axios做的一层简单封装成npm包形式,主要就是解决简单转发都要写大量的多余代码,增加开发的时间。
TODO: 后期还有很大优化空间,但是,先这样,后面有时间再说。
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;
};