封装API,我是对wx.request进行了一个二次封装
话不多说,直接开始
第一步:在目录中创建一个文件(名字随便写)比如我起个http文件
第二步:在http文件中创建个context.js文件(这个文件名字也随便写)这个文件里写接口的公共路径
module.exports={
//公共路径
prod:{
baseurl:'https://api.it120.cc'
}
}
第三步:创建request.js文件(名字也随便写)这个文件呢是对wx.request进行二次封装
//引入context中的公共baseurl
const {baseurl}=require('./context').prod
//子域名
const dgq='dgq'
module.exports={
//二次封装wx.request
//isSubDomain
request:(url,method="GET",data,isSubDomain)=>{
let _url=`${baseurl}/${isSubDomain?dgq:''}${url}`
console.log(_url)
return new Promise((resolve,reject)=>{
wx.request({
url: _url,
method:method,
data:data,
header:{
'content-type':'application/x-www-form-urlencoded '
},
success:res=>{
if(res.data.code===0){
resolve(res.data)
}
},
fail(){
reject('有错误')
}
})
})
}
}
第四步:创建个API.js文件,基于数据请求的文件
//引入request请求
const {request}=require('./request.js')
//基于业务封装的数据请求
module.exports={
//封装商品列表方法
getlist:()=>{
return request('/shop/goods/list','POST',{},true) //true 是表示是否同意子域名
},
//请求登录接口
getdl:(code)=>{
return request('/user/wxapp/login','POST',{code},true)
}
第五步:在要请求的页面中引入getlist方法
const {getlist}=require('../../http/api')//商品列表
onLoad(){
getlist().then(res=>{
if(res.code===0){
this.setData({
list:res.data
})
}
}