小程序封裝request請求

前言

小程序開發(fā)中都會調(diào)用后端工程師開發(fā)的API巧娱,小程序的開發(fā)文檔提供了相對實用的API wx.request()恩敌,但是在開發(fā)的過程中焦履,又遇到了一些問題岛琼,在小程序的項目開發(fā)時配乓,調(diào)用的API不止一個仿滔,同一個API調(diào)用不止一次。同時犹芹,對于調(diào)用的API的管理也十分復(fù)雜每界,這樣的背景下陡蝇,對wx.request()方法的封裝變得尤為重要。

解決思路

  • 將API的路徑放在一個文件里面方便管理,并暴露出來纳账。
  • 封裝小程序的request方法,并return(本文中用的promise處理)。
  • 具體實現(xiàn)函數(shù)

實現(xiàn)

  1. 新建apiList.js文件用于存放適應(yīng)的API接口

let host = 'http://127.0.0.1:3001'   // 設(shè)置API接口的ip地址和端口

let apiList = {

  login: host +'/user/login',     //用戶登錄的API
  
  register: host + '/user/register',   //用戶注冊的API

  //...

}

module.exports = apiList;    //暴露出來

  1. 新建request.js文件以實現(xiàn)對wx.request()的封裝

import apiList from './apiList'   //  引入apiList.js文件

const apiRequest = (url, method, data, header) => {     //接收所需要的參數(shù),如果不夠還可以自己自定義參數(shù)
  let promise = new Promise(function (resolve, reject) {
    wx.request({
      url: url,
      data: data ? data : null,
      method: method,
      header: header ? header : { 'content-type':'application/x-www-form-urlencoded'},
      success: function (res) {
        //接口調(diào)用成功
        resolve(res);    //根據(jù)業(yè)務(wù)需要resolve接口返回的json的數(shù)據(jù)
      },
      fail: function (res) {
        // fail調(diào)用接口失敗
        reject({ errormsg: '網(wǎng)絡(luò)錯誤,請稍后重試', code: -1 });
      }
    })
  });
  return promise;  //注意翁巍,這里返回的是promise對象
}

//登錄接口的調(diào)用
let login = (data)=>{
  return new Promise((resolve, reject) => {
    resolve (apiRequest(apiList.login, 'get', data))
  })
}
//注冊接口的調(diào)用
let register= (data) => {
  return new Promise((resolve, reject) => {
    resolve(apiRequest(apiList.register, 'get', data))
  })
}

//最后需要將具體調(diào)用的函數(shù)暴露出,給具體業(yè)務(wù)調(diào)用

export default {
  login: login,
  register: register
}

3.具體業(yè)務(wù)中的調(diào)用

var api = require('./request.js').default;

//登錄點擊事件
login(){
  /**
  *用戶輸入校驗
    TODO
  */
  let params = {
    username:'xxx'
    password:'xxx'
  }
  api.login(params).then(res=>{
      console.log(res)     //API返回的數(shù)據(jù)
      //業(yè)務(wù)處理
  })
}

總結(jié)

通過對小程序網(wǎng)絡(luò)請求方法的二次封裝休雌,使得我們的代碼看上去更加的簡潔灶壶,在接口的管理上也相對的便利,比如在后端修改API的路徑時杈曲,只需要在apiList.js文件中修改相應(yīng)的API即可驰凛,也免去了修改時忽略了更多調(diào)用的麻煩。同時鱼蝉,也提高了代碼的復(fù)用性洒嗤,一勞永逸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魁亦,一起剝皮案震驚了整個濱河市渔隶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洁奈,老刑警劉巖间唉,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異利术,居然都是意外死亡呈野,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門印叁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來被冒,“玉大人,你說我怎么就攤上這事轮蜕∽虻浚” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵跃洛,是天一觀的道長率触。 經(jīng)常有香客問我,道長汇竭,這世上最難降的妖魔是什么葱蝗? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮细燎,結(jié)果婚禮上两曼,老公的妹妹穿的比我還像新娘。我一直安慰自己找颓,他們只是感情好合愈,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般佛析。 火紅的嫁衣襯著肌膚如雪益老。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天寸莫,我揣著相機與錄音捺萌,去河邊找鬼。 笑死膘茎,一個胖子當著我的面吹牛桃纯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播披坏,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼态坦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了棒拂?” 一聲冷哼從身側(cè)響起伞梯,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帚屉,沒想到半個月后谜诫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡攻旦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年喻旷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牢屋。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡且预,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烙无,到底是詐尸還是另有隱情辣之,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布皱炉,位于F島的核電站,受9級特大地震影響狮鸭,放射性物質(zhì)發(fā)生泄漏合搅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一歧蕉、第九天 我趴在偏房一處隱蔽的房頂上張望灾部。 院中可真熱鬧,春花似錦惯退、人聲如沸赌髓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锁蠕。三九已至夷野,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荣倾,已是汗流浹背悯搔。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留舌仍,地道東北人妒貌。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像铸豁,于是被迫代替她去往敵國和親灌曙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容