博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小程序封装wx.request请求并创建接口管理文件
阅读量:6008 次
发布时间:2019-06-20

本文共 2254 字,大约阅读时间需要 7 分钟。

开发小程序,封装有一个简单易用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&&params.success(res.data)      },      fail(err) {        params.fail&&params.fail(err)      }    })  }}复制代码

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

创建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调用方式一致,减少了强迫症的烦恼

第一次在掘金上发文章,还请诸位前辈多多指教!

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

转载地址:http://pivmx.baihongyu.com/

你可能感兴趣的文章
Struts2 技术全总结 (正在更新)
查看>>
PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
查看>>
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
查看>>
《编程之美》——寻找发帖“水王”学习与扩展 转surymj博客
查看>>
Linux 虚拟机VMware安装失败,提示没有选择磁盘
查看>>
LeetCode-Permutations
查看>>
SpringMVC的REST风格的四种请求方式
查看>>
漫谈 Clustering (1): k-means(转)
查看>>
从零搭建mongo分片集群的简洁方法
查看>>
J2EE环境配置与工具使用
查看>>
bzoj3684: 大朋友和多叉树(拉格朗日反演+多项式全家桶)
查看>>
C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别
查看>>
【经典算法】第四回:希尔排序
查看>>
css 禁止选中文本
查看>>
bzoj2165
查看>>
烂泥:【解决】NFS服务器使用showmount –e命令报错
查看>>
烂泥:LVM学习之逻辑卷LV及卷组扩容VG
查看>>
9. ZooKeeper之搭建单机模式。
查看>>
紧急维护,阿里云服务器抢修记
查看>>
数字货币相关
查看>>