小程序封装wx.request请求并创建接口管理文件的实现


Posted in Javascript onApril 29, 2019

开发小程序,封装有一个简单易用wx.request请求还是很必要的,可以省去大量的维护成本!闲话不多说,直接撸代码。

流程

  • 创建http.js文件,封装wx.request
  • 创建api.js文件,统一管理所有接口
  • 在index.js中调用接口

创建http.js文件,封装wx.request

在utils中创建http.js文件,封装http,代码如下:

module.exports = {
 http(url, method, params) {
  let token = 'token' // 获取token,自行获取token和签名,token和签名表示每个接口都要发送的数据
  let sign = 'sign' // 获取签名
  let data = {
    token,
    sign
  }
  if(params.data){ // 在这里判断一下data是否存在,params表示前端需要传递的数据,params是一个对象,有三组键值对,data:表示请求要发送的数据,success:成功的回调,fail:失败的回调,这三个字段可缺可无,其余字段会忽略
   for (let key in params.data) { // 在这里判断传过来的参数值为null,就删除这个属性
    if (params.data[key] == null || params.data[key] == 'null') {
     delete params.data[key]
    }
   }
   data = {...data,...params.data}
  }
  wx.request({
   url:'https://www.apiopen.top'+url, // 就是拼接上前缀,此接口域名是开放接口,可访问
   method:method=='post'?'post':'get', // 判断请求类型,除了值等于'post'外,其余值均视作get
   data,
   header: {
    'content-type': 'application/json'
   },
   success(res) {
    params.success&¶ms.success(res.data)
   },
   fail(err) {
    params.fail&¶ms.fail(err)
   }
  })
 }
}

代码很简单,需要说的是在逻辑代码中只需要传递params,而url和method在接口文件中传递,方便统一管理

创建api.js文件,统一管理所有接口

在utils下创建api.js文件,作为接口管理文件,代码如下:

// 在这里面定义所有接口,一个文件管理所有接口,易于维护
import {http} from './http'; // 引入刚刚封装好的http模块,import属于ES6的语法,微信开发者工具必须打开ES6转ES5选项

function femaleNameApi(params){ // 请求随机古诗词接口
 http('/femaleNameApi','get',params) // 接口请求的路由地址以及请求方法在此处传递
}

// 每一个接口定义一个函数,然后暴露出去,供逻辑代码调用

function novelApi(params){ // 小说推荐接口
 http('/novelApi','get',params) 
}

export default { // 暴露接口
 femaleNameApi,
 novelApi
}

用api.js文件统一管理的好处就是,当接口更新后修改很方便,不需要看逻辑代码,也不用关心有几处调用了此接口,直接在app.js中修改响应就行了,接口统一管理是非常有必要的

在index.js中调用接口

调用方式,代码如下

import http from '../utils/api' // 引入api接口管理文件
Page({
 data: {
  femaleList:[]
 },
 onLoad: function () {
  http.femaleNameApi({ // 调用接口,传入参数
   data:{
    page:1
   },
   success:res=>{
    console.log('接口请求成功',res)
    this.setData({
     femaleList:res.data
    })
   },
   fail:err=>{
    console.log(err)
   }
  })
 }
})

参数传入说明:

  • 为了和微信的API接口调用方式看起来一致,故采用了微信API的这种调用方式
  • 传递一个对象,对象有三组键值对,data:表示要发送的数据,success:成功回调,fail:失败回调
  • 三个键值对均可传可不传,其余值会忽略,基本和微信API调用方式一致,减少了强迫症的烦恼

小程序代码片段放在github上了,欢迎issue

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE innerHTML,outerHTML所引起的问题
Jun 04 Javascript
快速解决FusionCharts联动的中文乱码问题
Dec 04 Javascript
用JavaScript实现使用鼠标画线的示例代码
Aug 19 Javascript
jQuery前端框架easyui使用Dialog时bug处理
Dec 05 Javascript
node.js中的fs.chmodSync方法使用说明
Dec 18 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
Jquery 垂直多级手风琴菜单附源码下载
Nov 17 Javascript
分享我对JS插件开发的一些感想和心得
Feb 04 Javascript
Bootstrap媒体对象的实现
May 01 Javascript
总结Javascript中的隐式类型转换
Aug 24 Javascript
Angular.js自动化测试之protractor详解
Jul 07 Javascript
基于Electron实现桌面应用开发代码实例
Jul 07 Javascript
详解JavaScript实现动态的轮播图效果
Apr 29 #Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
Apr 29 #Javascript
实现elementUI表单的全局验证的方法步骤
Apr 29 #Javascript
深入浅析Vue 中 ref 的使用
Apr 29 #Javascript
详解微信小程序实现跑马灯效果(附完整代码)
Apr 29 #Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 #Javascript
微信小程序调用微信支付接口的实现方法
Apr 29 #Javascript
You might like
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
JS的get和set使用示例
2014/02/20 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
jQuery实现文字自动横移
2017/01/08 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
用实例解释Python中的继承和多态的概念
2015/04/27 Python
python中as用法实例分析
2015/04/30 Python
python中单下划线_的常见用法总结
2018/07/10 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
综合素质的自我鉴定
2013/10/07 职场文书
应届生英语教师求职信
2013/11/05 职场文书
应届生法律顾问求职信
2013/11/19 职场文书
八项规定整改方案
2014/02/21 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
大学生考试作弊检讨书
2014/09/21 职场文书
四风自我剖析材料
2014/09/30 职场文书
先进事迹材料怎么写
2014/12/30 职场文书
签字仪式主持词
2015/07/03 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
z-index不起作用
2021/03/31 HTML / CSS
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏