微信小程序-封装数据请求API接口

微信小程序封装数据请求API接口

那什么是api呢?

API:Application Programming Interface,应用程序编程接口

那为什么要封装API接口呢?

因为本身就是一出现是一大段,自然如果不封包起来通过调用的方式进行整理的话,直接放到网站
源码中,自然就会加大的源码的体积,而且还会影响到代码的美现。而且现在很多的杀来毒软件都
把JS代码误报为病毒,况源且JS代码外露也很容易让不良分子找到攻击网站的参照物。
	API接口封装的好处: 
			  1、提高网站的打开速度。
			  2、符合SEO搜索引擎思路。
			  	3、以便于我们后期的维护,如果当我们的接口发生更改的时候,我们修改也很方便,
			  	不需要再一个页面的查找
		所以,对于提高网站访问zhidao速度,最好把JS代码封包起来,而且还要通过ROBOT文件把之屏
	蔽掉,毕竟这些都是搜索引挚不能识别的,外放对于提高收录只有坏外没有好处,所以,为了收录
	为了访问速度能封装的JS代码就尽时封装。

那小程序怎么封装接口呢?接下来我们搞一下:
我们先在小程序里面创建一个目录 嗯 ~ ~ ~,就叫http吧!

我们先创建一个公共目录吧:里面设置公共访问的url,及地址环境
在http目录下面创建env.js

//commonJs预览 --- node.js采用的就是该规范	
	//什么是common.js规范:每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、
	//函数、类,都是私有的,对其他文件不可见。
	
	//这里使用的接口呢都是自己模拟的,亲么可以根据自己的需求进行添加
module.exports={
	//开发环境的url
	dev:{
		baseUrl:"http://localhost:3000"
	},
	//测试环境url
	test:{
		baseUrl:"http://www.test.com"
	},
	//线上环境url
	prod:{
		baseUrl:'https://api.it120.cc'
	}
}

继续在http目录下面创建一个request.js文件来二次封装wx.request

// 引入env中的url
const { baseUrl } = require('./env.js').prod; 
//在这里添加我们的专业域名
const subDomain = 'xxx';
	/*
	 *二次封装wx.request
	 * 
	 */
module.exports = {
    /**
     * 二次封装wx.request
     * {String }url:请求的接口地址
     * {String} method:请求方式 GET,POST....
     * {Object} data:要传递的参数
     * { boolean }isSubDomain:表示是否添加二级子域名 true代表添加, false代表不添加
     */
    request: (url, method, data, isSubDomain) => {
        console.log('这是我封装的ajax请求', baseUrl);
      	//这里使用ES6的写法拼接的字符串
        let _url = `${baseUrl}/${isSubDomain ? subDomain: '' }${url}`;
        console.log(_url);
        return new Promise((resolve, reject) => {
			wx.showLoading({
				title: '正在加载',
			});
            wx.request({
                url: _url,
                data: data,
                method: method,
                header: {
                    'content-type': 'application/x-www-form-urlencoded',
                },
                success: (res) => {
                    console.log('从接口获取到的数据', res);
					let { code } = res.data;
					if(code===0) {
						resolve(res.data);
						wx.hideLoading();
					}else {
						wx.showToast({
							title: '数据请求错误',
						})
					}
                },
				fail() {
					reject('接口有误,请检查')
				}
            });
			
        });
    },
}

http目录下面在创建一个api.js文件来封装我们的reuest请求

//引入封装的reuest请求
const { request } = require('./request.js')
//基于业务封装的接口
module.exports={

	/* 轮播图 */
	banners:()=>{
		return request(','GET',{},true);
	},
	/* 封装商品列表的方法 */
	getGoodsList:()=>{
		return request('要请求的路径','请求方式|GET|POST',{要携带的参数},是否添加子域名 |true|false);
	},
	/* 添加商品收藏 */
	addGoodsFav: (goodsId, token)=>{
		return request('要请求的路径', 'POST', { goodsId:goodsId, token:token},true);
	},
	/* 获取商品的分类 */
	getGoodsCate:()=>{
		return request('要请求的路径','GET',{},true);
	}
}
	然后再需要的js页面引入就ok了!
const { getGoodsList  } = require('../../http/api.js')
	//定义一个点击事件来测试我们请求的接口
	onbBn() {
		// getGoodsList();
		// addGoodsFav();
		// getGoodsCate()
		console.log('这是我们要测试的接口',getGoodsCate());
		//请求后抛出
		banners().then(res => {
			console.log('终于等到你',res);
		})

猜你喜欢

转载自blog.csdn.net/qq_43036190/article/details/105977018