@deepjs/uni-request
v0.3.7
Published
封装 uni-app 的 uni.request 接口请求,方便好用
Downloads
3
Maintainers
Readme
@deepjs/uni-request
二次封装 uni.request 简单好用
使用
引入及配置
// api/index.js
import Vue from 'vue'
import request from '@deepjs/uni-request'
// request.use(Vue)
// request.$fetch('url', options)
// request.$get('url', options, success, fail, scope)
// request.$post('url', options, success, fail, scope)
// const service = request.create({
// baseURL: '/',
// timeout: 10000,
// responseType: "json",
// withCredentials: true, // 是否允许带cookie这些
// headers: {
// 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
// },
// })
let appIdRes = {}
// #ifdef MP-ALIPAY
appIdRes = my.getAppIdSync()
// #endif
const modelApis = {
submitFormId: 'POST /open/common/logaliformid', // 上传formid
// 初始化配置
// getConfig: '5 GET /open/common/appconfig',
// 获取七牛 token
getQiniuToken: '/v4/open/common/qiniutoken',
}
const commonParams = {
token: '',
uid: '',
uuid: '', // 用户唯一标志
udid: '', // 设备唯一标志
timestamp: '', // 时间
channel: env.terminal, // 渠道
version: env.version, // 系统版本,用于获取最新版数据
terminal: env.terminal,
device: '', // 设备
swidth: '', // 屏幕宽度
sheight: '', // 屏幕高度
location: '', // 地理位置
appid: appIdRes.appId,
}
const regHttp = /^https?/i
const models = Object.keys(modelApis).reduce((api, key) => {
/* eslint no-param-reassign: 0 */
const val = modelApis[key]
const [url, method = 'GET', cacheTime = 0] = val.split(/\s+/).reverse()
// method = method.toUpperCase();
let originUrl = regHttp.test(url) ? url : `${env.apiBaseUrl}${url}`;
api[key] = (params, success, fail) => {
const { hideLoading } = params
delete params.hideLoading
// const originUrl = regHttp.test(url) ? url : `${env.apiBaseUrl}${url}`
return request(originUrl, {
cacheTime,
method,
hideLoading,
data: Object.assign({}, getCommonParams(), params),
}, success, fail)
}
return api
}, {})
export function setCommonParams(params) {
return Object.assign(commonParams, params)
}
export function getCommonParams() {
return { ...commonParams }
}
models.getCommonParams = getCommonParams
models.setCommonParams = setCommonParams
export default models
挂载
// main.js
import api from '@/api'
Vue.prototype.$api = api
页面中使用
// page.vue
{
created() {
this.fetchData()
},
methods: {
fetchData() {
this.$api.getConfig(
{},
res => {},
err => {},
)
},
},
}