uni-app 封装接口request请求
我们知道一个项目中对于前期架构的搭建工作对于后期的制作有多么重要,所以不管做什么项目我们拿到需求后一定要认真的分析一下,要和产品以及后台沟通好,其中尤为重要的一个环节莫过于封装接口请求了。因为前期封装好了,后面我们真的可以实现粘贴复制了。所以今天小月博客给大家分享一个在uni-app中如何封装一个request请求。
第一步、根目录下新建 config.js 文件
const config = {
base_url: '这里可以是生产环境或者测试环境'
}
export { config }
这里主要配置接口的基本路径
第二步、根目录下新建 utils/http.js 文件
import {
	config
} from '../config.js'
export const apiResquest = (prams) => { //prams 为我们需要调用的接口API的参数 下面会贴具体代码
	// 判断请求类型
	let headerData = {
		'content-type': 'application/json'
	}
	let dataObj = null
        //因为我们的GET和POST请求结构不同这里我们做处理,大家根据自己后台接口所需结构灵活做调整吧
	if (prams.method === "GET") {
		headerData = {
			'content-type': 'application/json',
			'token': uni.getStorageSync('token')
		}
	} else {
		dataObj = {
			'data': prams.query,
			'token': uni.getStorageSync('token')
		}
	}
	return new Promise((resolve, reject) => {
		let url = config.base_url + prams.url; //请求的网络地址和局地的api地址组合
		uni.showLoading({
			title: '加载中',
			mask: true
		})
		return uni.request({
			url: url,
			data: dataObj,
			method: prams.method,
			header: headerData,
			success: (res) => {
				uni.hideLoading()
                                //这里是成功的返回码,大家根据自己的实际情况调整
				if (res.data.code !== '00000') {
					uni.showToast({
						title: '获取数据失败:' + res.data.msg,
						duration: 1000,
						icon: "none"
					})
					return;
				}
				resolve(res.data);
				console.log(res.data)
			},
			fail: (err) => {
				reject(err);
				console.log(err)
				uni.hideLoading()
			},
			complete: () => {
				console.log('请求完成')
				uni.hideLoading()
			}
		});
	})
}
第三步、 创建model 层 根目录下新建 models/index.js 文件
——-️注意: 这里可以根据自己的项目功能需求分解models 层——-
import { apiResquest } from '../utils/http.js'
//POST 请求案例
export const login = (query) => {
	return apiResquest({
		url: '这里是API的地址',
		method: 'POST',
		query: {...query}
	})
}
//GET 请求案例可以传递参数也可以不传递
export const validateCode  = (query) => {
	let str = query
	return apiResquest({
		url: `您的API地址 ?${str}`,
		method: 'GET'
	})
}
第四步、页面中调用
import { login } from '../../models/index.js'
//页面中的 methods 里面就可以直接调用了
Login(){
        //这里可以设置需要传递的参数
	let uid = uni.getStorageSync('userId')
	login(uid).then((res) => {
		console.log(res)
	}).catch(err => {
		console.log(err)
	})
}
以上代码就是完整的接口封装了,真的超级实用,其实网上有很多关于uni-app接口封装的案例,但是个人感觉亲测了好几种,这种是最好用的。分享在这里希望和大家一起交流。
最近会持续分享uni-app相关的文章。更多uni-app学习资源如下
uni-app快速入门 从零开始实现新闻资讯类跨端应用(含源码)完整无秘
百度云盘直接下载,里面讲的更多的是一种学习方法,非常值得学习。
uni-app 封装接口request请求的更多相关文章
- 微信小程序设置全局请求URL 封装wx.request请求
		
app.js: App({ //设置全局请求URL globalData:{ URL: 'https://www.oyhdo.com', }, /** * 封装wx.request请求 * metho ...
 - uniapp封装uni.request请求
		
封装一个uniapp请求 新建一个http.js文件封装uni.request const BASE_URL = process.env.NODE_ENV === 'development' ? '' ...
 - 微信小程序带cookie的request请求代码封装(小程序使用session)
		
微信小程序带cookie的request请求可,以使服务端知道是同一个客户端请求. session_id会不变,从而很好的使用服务端的session. 写一个工具函数,直接导入使用即可,接口同 wx. ...
 - 微信小程序request请求封装,验签
		
1/ 公共文件util添加 request请求 //简单封装请求 function request(params, path, isShowLoading = true, goBack = false ...
 - PHP   Request请求封装
		
/** * Request请求封装 * Class Request * @package tool */ class Request { // curl 请求错误码 protected static ...
 - 小程序封装request请求
		
//request.js var host = 'https://www.xxx.com';//请求域名 module.exports = function (type, params, method ...
 - 微信小程序request请求封装
		
var app = getApp(); function request(url,postData,doSuccess,doFail,doComplete){ var host = getApp(). ...
 - java servlet手机app访问接口(一)数据加密传输验证
		
前面几篇关于servlet的随笔,算是拉通了 servlet的简单使用流程,接下去的文章将主要围绕手机APP访问接口这块出发续写,md5加密传输--->短信验证--->手机推送---> ...
 - iOS 自己封装的网络请求,json解析的类
		
基本上所有的APP都会涉及网络这块,不管是用AFNetWorking还是自己写的http请求,整个网络框架的搭建很重要. 楼主封装的网络请求类,包括自己写的http请求和AFNetWorking的请求 ...
 
随机推荐
- Linux 系统编程 学习:11-线程:线程同步
			
Linux 系统编程 学习:11-线程:线程同步 背景 上一讲 我们介绍了线程的属性 有关设置.这一讲我们来看线程之间是如何同步的. 额外安装有关的man手册: sudo apt-get instal ...
 - python框架Django中MTV框架之VIew(业务控制器)
			
MTV框架之VIew(业务控制器) 关注公众号"轻松学编程"了解更多. 1.什么是视图 视图层=路由表(urls.py)+视图函数(views.py) 其角色相当于MVC中的Con ...
 - Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战
			
Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 搭建Elasticsearch的"那些事儿" ...
 - Spring Security 实战干货:客户端OAuth2授权请求的入口
			
1. 前言 在Spring Security 实战干货:OAuth2第三方授权初体验一文中我先对OAuth2.0涉及的一些常用概念进行介绍,然后直接通过一个DEMO来让大家切身感受了OAuth2.0第 ...
 - Docker系列02—Docker 网络模式
			
一.Docker的四种网络模式 1.Docker 的四种网络模式: Bridge container 桥接式网络模式 Host(open) container 开放式网络模式 Container(jo ...
 - git commit后如何取消commit
			
在git使用中要如何取消commit但是还未push的操作? 通常,我们对修改的文件会先git add .,然后git commmit -m "注释",但是如果commit错了,想 ...
 - <摘自>飞:jxl简析[ http://www.emlog.net/fei ]
			
<摘自>飞:jxl简析:http://www.emlog.net/fei 最近,完成了一个网上报表系统,刚巧用到了一个 JAVA 操作 excel 表格的 API .闲来无事,就将其大概的 ...
 - Zabbix实现电话告警通知的配置方法分享
			
如果要讨论下当下热门的监控系统,我想zabbix应该能够占有自己的一席之地,拥有不小的话语权吧.然而身为一名苦逼的运维,为了不错过重大的告警信息,就需要配置个[电话告警]来进行最快速的通知. zabb ...
 - Ceph删除OSD上一个异常object
			
前言 ceph里面的数据是以对象的形式存储在OSD当中的,有的时候因为磁盘的损坏或者其它的一些特殊情况,会引起集群当中的某一个对象的异常,那么我们需要对这个对象进行处理 在对象损坏的情况下,启动OSD ...
 - CPU相关的学习
			
我理解的CPU 目前对cpu的了解停留在这个水平 查看CPU型号: cat /proc/cpuinfo |grep model |tail -n 1 model name : Intel(R) Xeo ...