全网介绍小程序接口请求封装的实例

小程序开发教程今天在全网为大家介绍小程序接口请求封装的实例,快快围观。

这篇文章主要针对一些初学者,有写的不好的地方,还请大家多多谅解!

在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

4低价接各类项目系统搭建点我wcqh.cn2

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)

}低价接各类项目系统搭建点我wcqh.cn

}// 处理接口参数方法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里面

1

2

3

import api from ./utils/apis.js;

Ap低价接各类项目系统搭建点我wcqh.cnp({    api: api,

})复制代码

登录后复制

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章!

© 版权声明
THE END
喜欢就支持一下吧
点赞994 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容