小程序封裝request

小程序開(kāi)發(fā)中都會(huì)調(diào)用后端工程師開(kāi)發(fā)的API硬萍,小程序的開(kāi)發(fā)文檔提供了相對(duì)實(shí)用的APIwx.request()扼仲,但是在開(kāi)發(fā)的過(guò)程中菊值,又遇到了一些問(wèn)題,在小程序的項(xiàng)目開(kāi)發(fā)時(shí)刻剥,調(diào)用的API不止一個(gè)遮咖,同一個(gè)API調(diào)用不止一次。同時(shí)造虏,對(duì)于調(diào)用的API的管理也十分復(fù)雜御吞,這樣的背景下,對(duì)wx.request()方法的封裝變得尤為重要漓藕。

本文的解決思路為:將API的路徑和方法放在一個(gè)文件里面方便管理;封裝小程序的request方法陶珠,并返回promise處理(ES6)。

一享钞、units文件夾中新建request.js文件

// utils/request.js
//封裝request
 
let apiRequest = (url, method, data, header) => {     //接收所需要的參數(shù)揍诽,如果不夠還可以自己自定義參數(shù)
  let promise = new Promise(function (resolve, reject) {
    wx.showNavigationBarLoading() //在標(biāo)題欄中顯示加載
    wx.request({
      url: url,
      data: data ? data : null,
      method: method,
      header: header ? header : { 'content-type': 'application/x-www-form-urlencoded' },
      complete: function () {
        wx.hideNavigationBarLoading(); //完成停止加載
        wx.stopPullDownRefresh(); //停止下拉刷新
      },
      success: function (res) {
        //接口調(diào)用成功
        resolve(res.data);    //根據(jù)業(yè)務(wù)需要resolve接口返回的json的數(shù)據(jù)
      },
      fail: function (res) {
        wx.showModal({
          showCancel: false,
          confirmColor: '#1d8f59',
          content: '數(shù)據(jù)加載失敗,請(qǐng)檢查您的網(wǎng)絡(luò)栗竖,點(diǎn)擊確定重新加載數(shù)據(jù)!',
          success: function (res) {
            if (res.confirm) {
              apiRequest(url, method, data, header);
            }
          }
        });
        wx.hideLoading();
      }
    })
  });
  return promise;  //注意暑脆,這里返回的是promise對(duì)象
}
 
export default apiRequest;

二、units文件夾中新建api.js文件

import apiRequest from './request.js';
const HOST = 'http://www.xx.com';
const API_LIST = {
  all: { 
    method: 'POST',
    url: '/e/extend/api/type.php'
  },
}

/*
  多參數(shù)合并
*/
function MyHttp(defaultParams, API_LIST) {
  let _build_url = HOST;
  let resource = {};
  for (let actionName in API_LIST) {
    let _config = API_LIST[actionName];
    resource[actionName] = (pdata) => {
      let _params_data = pdata;
      return apiRequest(_build_url + _config.url, _config.method, _params_data, {
        'content-type': 'application/x-www-form-urlencoded;charset=utf-8;Authorization;'
      });
    }
  }
  return resource;
}
const Api = new MyHttp({}, API_LIST);
export default Api;

三狐肢、業(yè)務(wù)中使用

import Api from '/../../utils/api.js';
.
.
.
 getAll() {
    Api.all({ id: 1 }).then(res => {
      console.log(res);
    })
  }

通過(guò)對(duì)小程序網(wǎng)絡(luò)請(qǐng)求方法的二次封裝添吗,使得我們的代碼看上去更加的簡(jiǎn)潔,在接口的管理上也相對(duì)的便利份名,比如在后端修改API的路徑和方法時(shí)碟联,只需要在api.js文件中修改相應(yīng)的API即可,也免去了修改時(shí)忽略了更多調(diào)用的麻煩同窘。同時(shí)玄帕,也提高了代碼的復(fù)用性,一勞永逸想邦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末裤纹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子丧没,更是在濱河造成了極大的恐慌鹰椒,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呕童,死亡現(xiàn)場(chǎng)離奇詭異漆际,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)夺饲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)奸汇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)施符,“玉大人,你說(shuō)我怎么就攤上這事擂找〈亮撸” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵贯涎,是天一觀的道長(zhǎng)听哭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)塘雳,這世上最難降的妖魔是什么陆盘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮败明,結(jié)果婚禮上隘马,老公的妹妹穿的比我還像新娘。我一直安慰自己肩刃,他們只是感情好祟霍,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布杏头。 她就那樣靜靜地躺著盈包,像睡著了一般。 火紅的嫁衣襯著肌膚如雪醇王。 梳的紋絲不亂的頭發(fā)上呢燥,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音寓娩,去河邊找鬼叛氨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛棘伴,可吹牛的內(nèi)容都是我干的寞埠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼焊夸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼仁连!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起阱穗,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤饭冬,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后揪阶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體昌抠,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年鲁僚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炊苫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裁厅。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖侨艾,靈堂內(nèi)的尸體忽然破棺而出姐直,到底是詐尸還是另有隱情,我是刑警寧澤蒋畜,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布声畏,位于F島的核電站,受9級(jí)特大地震影響姻成,放射性物質(zhì)發(fā)生泄漏插龄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一科展、第九天 我趴在偏房一處隱蔽的房頂上張望均牢。 院中可真熱鬧,春花似錦才睹、人聲如沸徘跪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)垮庐。三九已至,卻和暖如春坞琴,著一層夾襖步出監(jiān)牢的瞬間哨查,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工剧辐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寒亥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓荧关,卻偏偏與公主長(zhǎng)得像溉奕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子忍啤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • 婚姻中加勤,有第一次就有N次的,除了出軌還有家暴檀轨。 孫亦柔小時(shí)候胸竞,父親屢次家暴母親。 她的童年参萄,是在哭泣和不安中長(zhǎng)大卫枝。...
    矯情小白菜閱讀 770評(píng)論 3 7
  • 友汪彥良改字登徒子意樂(lè) 作者|黃磊 登徒赴巫山,朝云行雨寒讹挎。(1) 神女今何在校赤?復(fù)令心蔫然吆玖。 巫山意闌珊,不如早歸...
    黃磊的簡(jiǎn)書(shū)閱讀 863評(píng)論 0 2
  • 迎春 文/打潑墨水 嵐光鋪錦繡,靈鵲躍瓊枝浑测。 不問(wèn)君歸日翅阵,群芳競(jìng)發(fā)時(shí)。 注:有句老話叫做:千年難遇龍花會(huì)迁央!萬(wàn)年難遇...
    ddf4ff9b33bf閱讀 893評(píng)論 8 36
  • 不管你起點(diǎn)多么的低掷匠,只要你勇往直前,自強(qiáng)不息岖圈,就能東山再起讹语,加油。2019/3/1蜂科。
    慧雨_2195閱讀 157評(píng)論 0 1