温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

微信小程序如何封装常用的API接口请求及工具类

发布时间:2022-03-15 15:04:39 来源:亿速云 阅读:540 作者:iii 栏目:web开发

这篇“微信小程序如何封装常用的API接口请求及工具类”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序如何封装常用的API接口请求及工具类”文章吧。

工具类封装:

// utils.js

// 显示消息提示框

export function Toast(title,type,time,isshow){

  wx.showToast({

    title: title,

    icon: type,

    duration: time,

    mask: isshow  

  })

}

// 显示 loading 提示框。需主动调用 wx.hideLoading 才能关闭提示框

export function Loading(title){

  wx.showLoading({

    title: title,    

  })  

}

// 显示模态对话框

export function Modal(title,content) {

  return new Promise((resolve,reject)=>{

    wx.showModal({

      title: title,

      content: content,

       success: function(res) {

        if(res.confirm) {

          resolve(res.confirm)

        } else if(res.cancel) {

          resolve(res.cancel)

        }

      },

      fail: reject

    })

  })  

}

接口request请求的封装:

新建一个network文件夹,里面包含api.js request.js config.js 三个文件(根据自己需求来)

// config.js

// 开发环境url 

export const dev = {

   baseUrl: "http://192.168.0.1:8080/jeecg-boot",

};

// 测试环境url

export const test = {

  baseUrl: "http://www.xxx.com"

};

// 线上环境url

export const prod = {

  baseUrl: 'https://www.xxx.com'

};

// 封装实例

// request.js

// 引入二次封装的组件

import {

  Toast,

  Loading,

  Modal

} from './utils.js'

// 引入config中的url(后面点什么就是 什么环境)

 const {

  baseUrl

} = require('./config')。dev  //这里用的是ES6的写法

module.exports = {

  // 二次封装wx.request

  request: (url, method, data) => {

    //url: 为网络接口后面要拼接的动态路径

    //method: 为请求方式

    //data: 为要传递的参数 object类型

     let _url = ——${baseUrl}/${url}—— //子域名按需添加

    // let _url = ——${baseUrl}${son}/${url}——

         //设置请求头

      var header = {'content-type': 'application/json'}

      //检查缓存中有没有token

      var token = wx.getStorageSync('token')

      if(token != '') {

        //  header.Authorization = token;

        header['X-Access-Token'] = token;   // 键由后端定义

      }

    return new Promise((resolve, reject) => {

      Loading('正在加载中')

      wx.request({

        url: _url,

        data: data,

        method: method,

        header: header,

       /* success: (res) => {

           if (res.data.code == 200) {

             resolve(res)

             wx.hideLoading();

           } else {

             Toast('数据请求错误', 'error', 1000)

            //  console.log('操作失误:',res);

             wx.hideLoading();

           }

        },

        fail: (err) => {

          reject(err)

        } */

complete: (res) => {     //根据公司业务需求做出调整

                wx.hideLoading()

                if(res.statusCode==200){

                    if(res.data.status){

                        resolve(res.data.data)

                    }else{

                        Toast(res.data.msg)

                        reject(res.data.data)

                    }

                }else if (res.statusCode === 401) { 

                    //没有登录转跳到登录页面

                    wx.reLaunch({

                        url: '/pages/login/index'

                    })

                }else{   

                    Toast('请求失败,请稍后重试');

                }

            }

      })

    })

  }

}

API统一封装接口

// api.js

// 导入封装好的实例

import {request} from './request'

export function login(data) => {

    return request('/appletslogin/appletsLogin/login', 'post', data);

  },

页面使用

// 导入封装好的接口

import {login} from './network/api'

// 调用 

login()。then()。catch()  

以上就是关于“微信小程序如何封装常用的API接口请求及工具类”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI