请求接口统一管理

1、接口统一管理

当某个请求在多个组件中都需要发送时,可以在src/api/index.js中:进行接口统一管理。这样在接口路径发生改变时,只需要在src/api/index.js中修改对应接口,不需要找到组件中发请求的地方一个一个修改。

// 当前这个模块:api进行统一管理。
import requests from "./request";

// 三级联动接口 : /api/product/getBaseCategoryList 、 get  、无参数
export const reqCategoryList = () => {
// 发请求:axios发请求返回结果是Promise对象
  return requests({url:'/product/getBaseCategoryList', method: 'get'});
}

在组件里引入、发送"reqCategoryList"请求:

// 引入"reqCategoryList"请求
import {reqCategoryList} from '@/api';

// 使用"reqCategoryList"请求
reqCategoryList();

请求返回的结果是一个Promise对象,可以通过async/await处理。

2、proxy代理--解决跨域

什么是跨域:协议、域名、端口号不同请求,称之为跨域。

比如:前端项目本地服务器(http://localhost:8080/#/home)、后台服务器(http://gmall-h5-api.atguigu.cn )

解决跨域的方案:JSONP、CROS、代理服务器。

在vue项目中通过proxy代理解决,在vue.config.js配置文件中配置以下内容:

// 代理跨域
devServer: {
  proxy: {
    '/api': {
      target: 'http://gmall-h5-api.atguigu.cn',
      // pathRewrite: {'^/api': .''.},
    },
  }
}

在微信小程序中,我们可以使用 wx.request() 方法来发送网络请求。为了方便管理和维护,我们可以将网络请求进行封装,并将接口进行统一管理。 以下是封装网络请求的步骤: 1. 新建一个 utils 文件夹,用于存放工具类文件。 2. 在 utils 文件夹中新建一个 request.js 文件,用于封装网络请求。 3. 在 request.js 文件中,定义一个 request() 方法,用于发送网络请求。例如: ``` function request(url, data, method) { return new Promise((resolve, reject) => { wx.request({ url: url, data: data, method: method, success: res => { resolve(res.data); }, fail: err => { reject(err); } }) }) } ``` 这里使用了 Promise 对象,方便后续处理异步请求。 4. 在 request.js 文件中,定义一个统一管理接口的对象。例如: ``` const API = { login: '/api/login', getUserInfo: '/api/getUserInfo', ... } ``` 这里定义了两个接口,login 和 getUserInfo。 5. 在需要发送网络请求的页面中,引入 request.js 文件,并使用 API 对象来发送请求。例如: ``` import { API } from '../../utils/request.js' Page({ onLoad: function () { this.getUserInfo(); }, async getUserInfo() { const data = { // 请求参数 }; const res = await request(API.getUserInfo, data, 'GET'); // 处理响应结果 } }) ``` 这里使用了 async/await 来处理异步请求,使代码更加简洁。 通过以上步骤,我们可以方便地封装网络请求,并统一管理接口。这样,当接口发生变化时,我们只需要修改一次 API 对象即可,不需要在每个页面中修改请求地址。同时,也方便统一处理请求头、请求参数、响应数据等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值