我们知道一个项目中对于前期架构的搭建工作对于后期的制作有多么重要,所以不管做什么项目我们拿到需求后一定要认真的分析一下,要和产品以及后台沟通好,其中尤为重要的一个环节莫过于封装接口请求了。因为前期封装好了,后面我们真的可以实现粘贴复制了。所以今天小月博客给大家分享一个在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请求的更多相关文章

  1. 微信小程序设置全局请求URL 封装wx.request请求

    app.js: App({ //设置全局请求URL globalData:{ URL: 'https://www.oyhdo.com', }, /** * 封装wx.request请求 * metho ...

  2. uniapp封装uni.request请求

    封装一个uniapp请求 新建一个http.js文件封装uni.request const BASE_URL = process.env.NODE_ENV === 'development' ? '' ...

  3. 微信小程序带cookie的request请求代码封装(小程序使用session)

    微信小程序带cookie的request请求可,以使服务端知道是同一个客户端请求. session_id会不变,从而很好的使用服务端的session. 写一个工具函数,直接导入使用即可,接口同 wx. ...

  4. 微信小程序request请求封装,验签

    1/ 公共文件util添加 request请求 //简单封装请求 function request(params, path, isShowLoading = true, goBack = false ...

  5. PHP Request请求封装

    /** * Request请求封装 * Class Request * @package tool */ class Request { // curl 请求错误码 protected static ...

  6. 小程序封装request请求

    //request.js var host = 'https://www.xxx.com';//请求域名 module.exports = function (type, params, method ...

  7. 微信小程序request请求封装

    var app = getApp(); function request(url,postData,doSuccess,doFail,doComplete){ var host = getApp(). ...

  8. java servlet手机app访问接口(一)数据加密传输验证

    前面几篇关于servlet的随笔,算是拉通了 servlet的简单使用流程,接下去的文章将主要围绕手机APP访问接口这块出发续写,md5加密传输--->短信验证--->手机推送---> ...

  9. iOS 自己封装的网络请求,json解析的类

    基本上所有的APP都会涉及网络这块,不管是用AFNetWorking还是自己写的http请求,整个网络框架的搭建很重要. 楼主封装的网络请求类,包括自己写的http请求和AFNetWorking的请求 ...

随机推荐

  1. python机器学习实现线性回归

    线性回归 关注公众号"轻松学编程"了解更多. [关键词]最小二乘法,线性 一.普通线性回归 1.原理 分类的目标变量是标称型数据,而回归将会对连续型的数据做出预测. 应当怎样从一大 ...

  2. python日期与日历Datetime和Calendar模块

    datetime模块 1.1 概述 datetime比time高级了不少,可以理解为datetime基于time进行了封装,提供了更多的实用的函数,datetime的接口更加的直观,更容易调用 1.2 ...

  3. NOIP 2018 D1 解题报告(Day_1)

    总分   205分 T1 100分 T2  95分 T3  10分 T1: 题目描述 春春是一名道路工程师,负责铺设一条长度为 nn 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是  ...

  4. Linux__用户用户组和权限

    用户用户组和权限 useradd +用户名, 添加这个用户 userdel +用户名, 删除这个用户(有残留 ) userdel -r +用户名, 彻底删除这个用户 groupadd +组名 ,添加这 ...

  5. CF957D Riverside Curio

    dp+预处理 dp[i]表示第i天时的水位线有多少条, 然后你会发现这个dp是有后效性的,当第i天的m[i]>dp[i-1]时就要修改之前的dp值 因此我们预处理出每一天的至少要多少条水位线,记 ...

  6. .NET Core 跨平台资源监控库及 dotnet tool 小工具

    目录 简介 dotnet tool 体验 CZGL.SystemInfo SystemPlatformInfo ProcessInfo 内存监控 NetworkInfo DiskInfo 简介 CZG ...

  7. day85:luffy:购物车根据有效期不同切换价格&购物车删除操作&价格结算&订单页面前戏

    目录 1.购物车有效期切换 2.根据有效期不同切换价格 3.购物车删除操作 4.价格结算 5.订单页面-初始化 1.购物车有效期切换 1.关于有效期表结构的设计 1.course/models.py ...

  8. Prometheus监控告警浅析

    前言 最近有个新项目需要搞一套完整的监控告警系统,我们使用了开源监控告警系统Prometheus:其功能强大,可以很方便对其进行扩展,并且可以安装和使用简单:本文首先介绍Prometheus的整个监控 ...

  9. 我发现了一个特别Man的Linux工具!!!

    Linux命令不用我多说吧,谁还不会几个?但是一个命令可能有几十种用法,就拿最简单也是最常用的ls来举例,它就有将近20种options用法 比如 ls -a :现实所有文件及其隐藏文件 ls -t ...

  10. python之迭代锁与信号量

    如果现在需要在多处加锁大于等于2的时候 因为计算机比较笨,当他锁上一把锁的时候又所理一把锁,等他来开锁的时候他不知道用哪把钥匙来开锁, 所以这个时候我们需要把把平常的锁变为迭代锁 eg: import ...