這篇文章將為大家詳細講解有關小程序接口請求封裝的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
垣曲網站制作公司哪家好,找成都創新互聯!從網頁設計、網站建設、微信開發、APP開發、響應式網站等網站項目制作,到程序開發,運營維護。成都創新互聯從2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯。
這個文件主要api接口,廢話不多說直接上代碼了
const request = require('requtil.js')/*Apis 把全部api都存在這里*/const Apis = { /* 用戶相關 */ 'login': '/devicecenter/auth/weChtLoin', 'bindUser': '/devicecenter/user/userBindinOpenId', 'genQrCode': '/devicecenter/user/getUserRcode', /* 設備相關 */ 'getDeviceList': '/minipro/group/getDl', // 獲取設備列表 'getDeviceAdd': '/minipro/group/addDl', // 添加設備 'getDeviceDtl': '/minipro/group/delDl', // 刪除設備}/* 定義請求方法 */const user = { login: function(data) { request.get(Apis.login, data) }, getSecret: function(data) { request.get(Apis.getSecret, data) }, }module.exports = { ...user }復制代碼
把微信的wx.request請求進行分開封裝
const globalsetting = require('globalsetting.js')const baseURL = globalsetting.serverconst util = require('util.js')const ignoreUrls = [ '/auth/weChatLogin', '/user/userBindingOpenId', '/user/getSecret', '/user/getOpenId']var token = ''function post(url, args) { args = _prev(url, 'POST', args) wx.request(args) }function get(url, args) { args = _prev(url, 'GET', args) wx.request(args) }function put(url, args) { args = _prev(url, 'PUT', args) wx.request(args) }function _delete(url, args) { args = _prev(url, 'DELETE', args) wx.request(args) }function _prev(url, method, args) { // console.log('123',args) args = args || {} args.url = url if(args.urlparam) args.url += '/' + args.urlparam var params = parseParams(args) params.method = method params.success = success(params.success) params.fail = fail(params.fail) setToken(params) return params }// 處理接口是否需要添加header.token方法function setToken(params) { if (!ignoreUrls.some(url => params.url.match(new RegExp(url)))) { if (!params.header) params.header = { token: getToken() } else params.header.token = getToken() } else { // console.log('ignore: ', params.url) } }// 處理接口參數方法function parseParams(args) { var params = Object.assign(args) if (!(params.url.startsWith('https://') || params.url.startsWith('http://'))) params.url = baseURL + params.url if(params.param) { if (params.url.indexOf('?') > -1 && params.url.indexOf('?') != params.url.length - 1) { params.url += '&' } else if(params.url.indexOf('?') == params.url.length -1) { // 無任何操作 } else { params.url += '?' } var buf = '' for(var name in params.param) { let val = params.param[name]; buf += name + '=' + encodeURI(typeof val == 'object' ? JSON.stringify(val) : val) + '&' } params.url += buf } return params }// 接口返回成功方法function success(callback) { return function(rs) { var status = rs.statusCode if (status == 405) { util.errorMsg('請求失敗405:\n服務器返回失敗') } else if(status == 404) { util.errorMsg('請求失敗404:\n找不到接口') } if(callback) callback(rs.data) } }function fail(callback) { return function(rs) { console.log(rs) if(callback) callback(rs) } }// 獲取接口請求回來的tokenfunction _setToken(tk) { token = tk wx.setStorageSync('token', token) }復制代碼
import api from './utils/apis.js'; App({ api: api, })復制代碼
通過getApp()獲取api接口,自定義一個函數里面用到了promise方法獲取數據,然后在getDevList調用getChatRecord方法,就可以數據賦值
const APP = getApp() getDevList(e){ this.getChatRecord().then(res => { wx.hideLoading({ success: (res) => {}, }); if(res.id == '-1') { utils.errorMsg(res.message); }else { console.log(res) } }) }// 設備列表請求接口getChatRecord (params = {}) { return new Promise((resolve, reject) => { APP.api.getDeviceList({ success: res => { resolve(res) } }) }) },復制代碼
后期我會做一個demo出來,放到github上面,這樣你們看起來更直觀一些
關于“小程序接口請求封裝的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
網站欄目:小程序接口請求封裝的示例分析
當前網址:http://m.2m8n56k.cn/article42/jdsjhc.html
成都網站建設公司_創新互聯,為您提供網站營銷、網站改版、網站導航、網站建設、移動網站建設、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯