1.0.1 • Published 4 years ago
axios-fg v1.0.1
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; };