微信小程序的数据请求

微信小程序的数据请求

一、常用的数据请求方式

1. JS原生实现

第一种:

	let xhr=new XMLHttpRequest()
	xhr.open()
	xhr.send()
	
第二种:fetch() 支持promise

fetch('接口地址')
  .then(function(response) {
    return response.json();
  })
  .then(function(myJson) {
    console.log(myJson);
  })
  .catch(error=>{
  
  })
  
  例如:
  
  fetch('https://api.it120.cc/hjl/shop/goods/category/all')
.then(res=>{
   //console.log(res)
  return res.json()
}).then(response=>{

   console.log('返回的结果:',response)
})
  
 详细参考fetch官方文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API/Using_Fetch

2.jQuery实现

$.ajax({
   url:'xxx',
   type:'',
   success:function() {},
   ...
})

$.getJSON()

3.Vue常用的方式

axios
axios.get()
axios.post()
axios.delete()
axios.put()

强大的一点支持拦截器

4.微信小程序实现方式

(1)wx.request()

 例如:
 wx.request({
  url: 'test.php', //仅为示例,并非真实的接口地址
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' // 默认值
  },
  success (res) {
    console.log(res.data)
  }
})

注意:使用wx.request()请求注意事项
   1.使用之前要提前配置合法域名或微信开发者工具-详情-本地设置-勾选不检验合法域名
   2.请求的接口协议必须是https开头的,即加密协议
   3.如果加载页面完成就请求数据,请求最好放在onShow生命周期中

浏览器与服务端交互流程

>

二、api工厂接口说明

1.api工厂官方地址:https://www.it120.cc/
2.api工厂前端接口地址:https://api.it120.cc/doc.html#/home
3.api工厂后台管理登录地址(若没有提前注册):https://admin.it120.cc/#/

postman:专业接口测试工具

公共域名+专有域名
公共域名:https://api.it120.cc
专属域名域名:hjl
https://api.it120.cc/hjl/

专有域名和商城数据都要通过API工厂后管理系统来设置:
https://admin.it120.cc/#/

专属域名设置:进行后台管理-首页-基本信息-专属域名


天使童装数据初始化:

后台管理-左侧菜单 “工厂设置” --> “数据克隆” --> “将别人的数据克隆给我”

对方商户ID填写 951

三、通过postman来测试接口,如下图:

四、小程序的接口封装

1. 作用:方便统一管理项目接口,便于项目后期维护与管理

2. 具体怎么实现封闭

1.集中管理项目中可能用到的公共url(线上url,测试url,本地url,...)
  例如:
    module.exports={
      //线上地址
       prod:{
         baseUrl:'https://api.it120.cc'
       },
       //测试地址
       test:{
         baseUrl:'https://www.05E.com'
       },
       //本地地址
       local:{
         baseUrl:'https://www.local.com'
       }

    }
2.对wx.request进行二次封装,针对不同业务参数的传递,返回不同的请求结果

	Promise() 主要用于解决回调地狱的一种异步方案

//针对wx.request进行二次封装
const {baseUrl}=require('./env').prod


module.exports={

   request:function(url,method="GET",data={},isSubDomain=true) {

     const vipUrl='hjl'
     if(isSubDomain) {
      url=`${baseUrl}/${vipUrl}/${url}`
     }else {
      url=`${baseUrl}/${url}`
     }
 

    //公共域名/专属域名/业务接口地址
     return  new Promise((resolve,reject)=>{

        wx.showLoading({
          title: '玩命加载中。。。',
        })

         wx.request({
           url,
           method,
           data,
           header:{
             'Content-type':'application/x-www-form-urlencoded'
           },
           success(res) {
             // console.log('成功返回111111:',res)
              if(res.data.code===0) {
                resolve(res.data.data)
                wx.hideLoading()
              }
           },
           fail(err) {
              reject(err)
           }
         })
     })
   },
}

3.统一管理不同业务的接口

//引入request方法
const {request}=require('./request')


//统一管理不同的业务接口api

module.exports={

  //调取轮播图接口
  getBanner:()=>{
    return request('banner/list','GET',{type:'index'},true)
  },
  //调取商品分类接口
  getGoodsCate:()=>{
    return request('shop/goods/category/all','GET',{},true)
  },
  //添加商品收藏接口
  addGoodsFav:(goodsId)=>{
    return request('shop/goods/fav/add','POST',{goodsId},true)
  }
  //取消商品收藏
  //加入购物车接口
  //.....


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值