主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
今天小程序开发教程介绍全网小程序接口请求封装的例子,赶紧看。
这篇文章主要是针对一些初学者的,有一些不好写的地方。请原谅我!
在utils文件夹中创建两个新的js文件,一个是api.js,另一个是requtil.js
API . jsconst request = require( # 39;requtil.js # 39)/* API在此保存所有API */const API = {/*用户相关*/ # 39;登录 # 39;: '/device center/auth/微信登录 # 39;, 'bindUser # 39: '/device center/user/userBindinOpenId # 39;, 'genQrCode # 39: '/device center/user/getusercode # 39;,/*设备相关*/ # 39;getDeviceList # 39: '/mini pro/group/getDl # 39;,//获取设备列表 # 39;getDeviceAdd # 39: '/minipro/group/addDl # 39;,//添加一个设备 # 39;getDeviceDtl # 39: '/minipro/group/delDl # 39;,//删除设备}/*定义请求方法*/const user = { log in:function(data){ request . get(APIs . log in,data)},Getsecret:function(data){ request . get(APIs . Getsecret,data)},} module.exports = {...user}复制代码requtil.jsconst全局设置= require( # 39;globalsetting.js # 39)const base URL = global setting . server const util = require( # 39;util.js # 39)const ignore URLs =[ # 39;/auth/we chat log in # 39;, '/user/userBindingOpenId # 39;, '/user/get secret # 39;, '/user/get OpenID # 39;]var token = # 39;'函数post(url,args) { args = _prev(url, # 39;邮政 # 39;,args)wx . request(args)} function get(URL,args) { args = _prev(url, # 39;获取 # 39;,args)wx . request(args)} function put(URL,args) { args = _prev(url, # 39;放 # 39;,args)wx . request(args)} function _ delete(URL,args) { args = _prev(url, # 39;删除 # 39;,args)wx . request(args)} function _ prev(URL,method,args){//console . log( # 39;123',args)args = args | | { } args . URL = URL if(args . URL param)args . URL+= # 39;/'+args . URL param var params = parse params(args)params . method = method params . success = success(params . success)params . fail = fail(params . fail)Set token(params)return params }//是否需要添加header.token方法函数setToken(params) {if(!ignore URLs . some(URL = gt;params . URL . match(new RegExp(URL))){ if(!params . header)params . header = { token:getToken()} else params . header . token = getToken()} else {//console . log( # 39;忽略: # 39;,params.url) }}//函数parse params(args){ var params = object . assign(args)if(!(params . URL . starts with( # 39;https:// # 39;)| | params . URL . starts with( # 39;http:// # 39;)))params . URL = base URL+params . URL if(params . param){ if(params . URL . index of( # 39;?') gt-1 ; params . URL . index of( # 39;?') != params . URL . length -1){ params . URL+= # 39; '} else if(params . URL . index of( # 39;?')= = params . URL . length -1){//nothing } else { params . URL+= # 39;?'} var buf = # 39'for(params . param中的变量名称){ let val = params . param[名称];buf+= name+ # 39;='+encode uri(type of val = = # 39;对象 # 39;?JSON . stringify(val):val)+ # 39; '} params . URL+= BUF } return params }//接口返回成功的方法functionsuccess(回调){ return function(RS){ var status = RS . status code if(status = = 405){ util . error msg( # 39;请求失败405:\ n服务器返回一个失败 # 39;)} else if(status = = 404){ util . error msg( # 39;请求失败404:\ n接口 # 39;没有找到。)} if(回调)callback(RS . data)} } function fail(回调){ return function(RS){ console . log(RS)if(回调)callback(RS)} }//Get token function _ settoken(tk){ token = tkwx . setstoragesync( # 39;token # 39,token)}如何从全局app.js # 39。/utils/APIs . js # 39;;App({ api: api,})复制代码索引页constapp = getapp()getdevlist(e){ this . getchatrecord()。然后(RES = >;{ wx . hide loading({ success:(RES)= gt;{}, });if(RES . id = = # 39;-1'){ utils . error msg(RES . message);} else { console . log(RES)} }//设备列表请求接口getchatrecord(params = { }){ return new promise((resolve,reject)= >;{ app . API . get device list({ success:RES = gt;{Resolve (RES)}}}}},我会在复制代码的后期做一个demo放到github上,让大家看起来更直观。
以上是全网介绍小程序接口请求封装实例的详细内容,请多关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
本文由主机参考刊发,转载请注明:全网介绍一个小程序接口请求封装的例子(小程序网络请求封装) https://zhujicankao.com/82247.html
评论前必须登录!
注册