小程序api封装(方法一)
研究小程序的路上越走越远....坑很多 很不习惯刚刚开始
在utils文件夹下面新增api.js http.js文件
// http.js
module.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: '460512FF0FE2392D6CB6D8A6560805CC'
},
success: res => {
console.log('接口请求成功', res)
this.setData({
// data定义的数据
userInfo: res.data
})
},
fail: err => {
console.log(err)
}
})
},
onLoad: function (){
this.getData()
}
原创未经允许不得转载!!!转载请注明出处~谢谢合作;