小程序开发教程今天在全网为大家介绍小程序接口请求封装的实例,快快围观。
这篇文章主要针对一些初学者,有写的不好的地方,还请大家多多谅解!
在utils文件夹里面新建两个js文件,一个是api.js、一个就低价接各类项目系统搭建点我wcqh.cn是requtil.js
api.js
这个文件主要api接口,废话不多说直接上代码了1
2
3
4
5
6
7
8
9
10
11
12
13
14
const request = require(requtil.js)/*Apis低价接各类项目系统搭建点我wcqh.cn 把全部api都存在这里*/const Apis = {
/* 用户相关 */
login: /devicecenter/auth/weChtLoin, bindUser: /devicecenter/低价接各类项目系统搭建点我wcqh.cnuser/userBindinOpenId, genQrCode: /devicecenter/user/getUserRcode,
/* 设备相关 */
getDeviceList: /minipro低价接各类项目系统搭建点我wcqh.cn/group/getDl, // 获取设备列表
getDeviceAdd: /minipro/group/addDl, // 添加设备
getDeviceDtl: /minipro/group/delD低价接各类项目系统搭建点我wcqh.cnl, // 删除设备}/* 定义请求方法 */const user = { login: function(data) {
request.get(Apis.login, data)
}, getS低价接各类项目系统搭建点我wcqh.cnecret: function(data) {
request.get(Apis.getSecret, data)
},
}module.exports = {
…user
}复制代码
requti低价接各类项目系统搭建点我wcqh.cnl.js
把微信的wx.request请求进行分开封装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
43
44
45
46
47
48
49
const globalsetting = require(globalsetting.js)const baseURL = globalsetting.serverco低价接各类项目系统搭建点我wcqh.cnnst util = require(util.js)const ignoreUrls = [ /auth/weChatLogin, /user/userBindingOpenId, /user低价接各类项目系统搭建点我wcqh.cn/getSecret, /user/getOpenId]var token = function post(url, args) {
args = _prev(url, POST, args)
wx.r低价接各类项目系统搭建点我wcqh.cnequest(args)
}function get(url, args) {
args = _prev(url, GET, args)
wx.request(args)
}function put(url,低价接各类项目系统搭建点我wcqh.cn args) {
args = _prev(url, PUT, args)
wx.request(args)
}function _delete(url, args) {
args = _prev(url, 低价接各类项目系统搭建点我wcqh.cnDELETE, args)
wx.request(args)
}function _prev(url, method, args) { // console.log(123,args)
args = ar低价接各类项目系统搭建点我wcqh.cngs || {}
args.url = url if(args.urlparam)
args.url += / + args.urlparam var params = parseParams(arg低价接各类项目系统搭建点我wcqh.cns)
params.method = method
params.success = success(params.success)
params.fail = fail(params.fail)
setTo低价接各类项目系统搭建点我wcqh.cnken(params) return params
}// 处理接口是否需要添加header.token方法function setToken(params) { if (!ignoreUrls.s低价接各类项目系统搭建点我wcqh.cnome(url => params.url.match(new RegExp(url)))) { if (!params.header)
params.header = { token: g低价接各类项目系统搭建点我wcqh.cnetToken() } else
params.header.token = getToken()
} else { // console.log(ignore: , params.url)
}// 处理接口参数方法function parseParams(args) { var params = Object.assign(args) if (!(params.url.startsW低价接各类项目系统搭建点我wcqh.cnith(https://) || params.url.startsWith(http://)))
params.url = baseURL + params.url if(params.param)低价接各类项目系统搭建点我wcqh.cn { if (params.url.indexOf(?) > -1 && params.url.indexOf(?) != params.url.length – 1) {低价接各类项目系统搭建点我wcqh.cn
params.url += &
} else if(params.url.indexOf(?) == params.url.length -1) { // 无任何操作
} else {
p低价接各类项目系统搭建点我wcqh.cnarams.url += ?
} var buf =
for(var name in params.param) { let val = params.param[name];
buf +=低价接各类项目系统搭建点我wcqh.cn name + = + encodeURI(typeof val == object ? JSON.stringify(val) : val) + &
}
params.url += buf
} 低价接各类项目系统搭建点我wcqh.cnreturn params
}// 接口返回成功方法function success(callback) { return function(rs) { var status = rs.stat低价接各类项目系统搭建点我wcqh.cnusCode if (status == 405) {
util.errorMsg(请求失败405:\n服务器返回失败)
} else if(status == 404) {
util.errorMs低价接各类项目系统搭建点我wcqh.cng(请求失败404:\n找不到接口)
} if(callback) callback(rs.data)
}
}function fail(callback) { return function(rs低价接各类项目系统搭建点我wcqh.cn) { console.log(rs) if(callback) callback(rs)
}
}// 获取接口请求回来的tokenfunction _setToken(tk) {
token 低价接各类项目系统搭建点我wcqh.cn= tk
wx.setStorageSync(token, token)
}复制代码
页面怎么调用
在全局的app.js里面
index页面
通过getApp()获取api接口,自定义一个函数里面用到了promise方法获取数据,然后在getDevList调用getChat低价接各类项目系统搭建点我wcqh.cnRecord方法,就可以数据赋值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const APP = getApp()
getDevList(e){ this.getChatRecord().then(r低价接各类项目系统搭建点我wcqh.cnes => {
wx.hideLoading({ success: (res) => {},
}); if(res.id == -1) {
utils.errorMsg(res.低价接各类项目系统搭建点我wcqh.cnmessage);
}else { console.log(res)
}
})
}// 设备列表请求接口getChatRecord (params = {}) { return new Promi低价接各类项目系统搭建点我wcqh.cnse((resolve, reject) => {
APP.api.getDeviceList({ success: res => {
resolve(res)
}
})
})
},复制代码低价接各类项目系统搭建点我wcqh.cn
后期我会做一个demo出来,放到github上面,这样你们看起来更直观一些
相关免费学习推荐:小程序开发教程
以上就是全网介绍小程序接口请求封装的实例的详细内容,更多请关注php中文网其它相关文低价接各类项目系统搭建点我wcqh.cn章!
暂无评论内容