微信小程序网络请求封装API集中管理

common/api目录下创建两个js文件 { apiList.js,api.js }

API列表 

// common/api/apiList.js
const BASE_URL = 'https://api.example.com'; // 定义 API 的基础域名

const apiList = {
  getData: BASE_URL + '/data',
  postData: BASE_URL + '/postData',
  // 其他接口路径...
};

module.exports = apiList;

请求封装

// common/api/api.js
const apiList = require('./apiList.js');

const request = (url, method, data) => {
  return new Promise((resolve, reject) => {
    wx.request({
      url: apiList[url], // 使用apiList中的接口路径
      method: method,
      data: data,
      header: {
        'content-type': 'application/json'
      },
      success(res) {
        resolve(res.data);
      },
      fail(err) {
        reject(err);
      }
    })
  })
}

module.exports = {
  request: request
};

 使用

// 在需要发送请求的页面或组件中引入api.js
const api = require('../../common/api/api.js');

// 使用封装的请求函数,传入对应的apiList中的接口名称即可
api.request('getData', 'GET', { key: value }).then(res => {
    console.log(res);
    // 请求成功的处理逻辑
}).catch(err => {
    console.log(err);
    // 请求失败的处理逻辑
});

 封装完毕 !

每次发起请求时带上 Code

const apiList = require('./apiList.js');

// 定义一个函数来获取用户的code
const getUserCode = () => {
  return new Promise((resolve, reject) => {
    wx.login({
      success: function (res) {
        if (res.code) {
          resolve(res.code);
        } else {
          reject('获取用户code失败');
        }
      },
      fail: function (err) {
        reject(err);
      }
    });
  });
};

// 修改网络请求函数,在调用时获取用户的code并携带在请求的header中
const request = (url, method, data) => {
  return getUserCode().then(code => {
    return new Promise((resolve, reject) => {
      wx.request({
        url: apiList[url], // 使用apiList中的接口路径
        method: method,
        data: data,
        header: {
          'content-type': 'application/json',
          'X-WX-Code': code  // 将code添加到请求的header中
        },
        success(res) {
          resolve(res.data);
        },
        fail(err) {
          reject(err);
        }
      })
    });
  });
};

module.exports = {
  request: request
};

相关推荐

  1. 程序网络请求封装API集中管理

    2024-03-23 10:16:02       20 阅读
  2. 程序网络请求二次封装

    2024-03-23 10:16:02       47 阅读
  3. 原生程序封装网络请求wx.request

    2024-03-23 10:16:02       11 阅读
  4. 程序】uni-app 配置网络请求

    2024-03-23 10:16:02       11 阅读
  5. 程序网络请求

    2024-03-23 10:16:02       22 阅读
  6. 程序封装网络请求设置超时5min不生效

    2024-03-23 10:16:02       39 阅读
  7. Taro@3.x+Vue@3.x+TS开发程序网络请求封装

    2024-03-23 10:16:02       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-23 10:16:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-23 10:16:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-23 10:16:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-23 10:16:02       20 阅读

热门阅读

  1. 蓝桥杯day8刷题日记--双子数,有奖问答

    2024-03-23 10:16:02       24 阅读
  2. MySQL-记

    MySQL-记

    2024-03-23 10:16:02      20 阅读
  3. 阿里云DataWorks数据治理实践

    2024-03-23 10:16:02       17 阅读
  4. ES6—Module 的语法

    2024-03-23 10:16:02       19 阅读
  5. 前端小白的学习之路(ES6 三)

    2024-03-23 10:16:02       22 阅读
  6. FM25512

    2024-03-23 10:16:02       20 阅读