小程序api封装(方法一)

研究小程序的路上越走越远....坑很多 很不习惯刚刚开始

在utils文件夹下面新增api.js  http.js文件

// http.jsmodule.exports = { http(url, method, params) { // 获取token,自行获取token和签名,token和签名表示每个接口都要发送的数据 let token = ‘‘ // 获取签名 (后台怎么定义的,就传什么) 具体情况穿不穿 let sign = ‘‘ let data = { token, sign } // 在这里判断一下data是否存在,params表示前端需要传递的数据,params是一个对象,有三组键值对, // data:表示请求要发送的数据,success:成功的回调,fail:失败的回调,这三个字段可缺可无,其余字段会忽略 if (params.data) { for (let key in params.data) { // 在这里判断传过来的参数值为null,就删除这个属性 if (params.data[key] == null || params.data[key] == ‘null‘) { delete params.data[key] } } data = { ...data, ...params.data } } // 就是拼接上前缀,此接口域名是开放接口,可访问 如果开发环境可以勾选详情选项的 不校验合法域名、TLS版本及HTTPS证书 wx.request({ url: ‘合法域名‘ + url, // 判断请求类型,除了值等于‘post‘外,其余值均视作get其他的请求类型也可以自己加上的 method: method == ‘post‘ ? ‘post‘ : ‘get‘, data, // post请求 把header 该为 application/x-www-form-urlencoded 就可以了 header: { ‘content-type‘: method == ‘get‘ ? ‘application/json‘ : ‘application/x-www-form-urlencoded‘ }, success(res) { params.success && params.success(res.data) }, fail(err) { wx.showToast({ title: ‘服务器内部错误‘, icon: ‘none‘, duration: 1500 }) params.fail && params.fail(err) }, complete() { setTimeout(() => { wx.hideLoading(); },1500) } }) } }
// api.js // 在这里面定义所有接口,一个文件管理所有接口,易于维护 // 引入刚刚封装好的http模块,import属于ES6的语法,微信开发者工具必须打开ES6转ES5选项import { http } from ‘./http‘; // 每一个接口定义一个函数,然后暴露出去,供逻辑代码调用 // 接口请求的路由地址以及请求方法在此处传递function postLoginApi(params) { http(‘/api/xxx/login‘, ‘post‘, params) } function getUserListApi(params) { http(‘/api/xxx/list‘, ‘get‘, params) } // 暴露接口export default { postLoginApi, getUserListApi }

页面调用

  import http from ‘../../utils/api‘ // 引入api接口管理文件
getData(){ http.postLoginApi({ // 调用接口,传入参数 data: { token: ‘470712FF0FE2392D6CB6D8A6560805CC‘ }, success: res => { console.log(‘接口请求成功‘, res) this.setData({ // data定义的数据 userInfo: res.data }) }, fail: err => { console.log(err) } }) }, onLoad: function (){ this.getData() }

 

小程序api封装(方法一)

相关文章