基于uni.app封装api接口请求,含请求拦截器响应拦截器

本文介绍了如何在uni.app项目中创建request.js文件,配置请求拦截器和响应拦截器,以及在basics.js中统一管理登录等公共接口。开发者可以借此实现更优雅的API请求处理方式。
摘要由CSDN通过智能技术生成

基于uni.app封装接口请求,含请求拦截器响应拦截器

一、创建request.js 文件(api文件夹=>request.js)

//配置基础地址
const BASE_URL = 'xxx'

//默认请求头 
const acquiesceContenttype = 'application/x-www-form-urlencoded'

export default {
	config: {
		// 请求拦截器
		beforeRequest(options = {}) {
			// console.log('请求拦截器', options)
			return new Promise((resolve, reject) => {
				options.url = BASE_URL + options.url;
				options.method = options.method || 'GET';
				options.data = options.data;
				options.timeout = options.timeout || 60000; //接口请求超时时间设置
				// 请求头携带参数
				options.header = {
					'Content-Type': options.responseType ? options.responseType : acquiesceContenttype,
				}
				resolve(options)
			})
		},
		// 响应拦截器
		handleResponse(data) {
			return new Promise((resolve, reject) => {
				const [err, res] = data;
				console.log('响应拦截器', err, res)
				if (err) {
					// console.log('接口请求超时', err)
					return reject(err);
				} else if (res) {
					if ( res.data.code == 0) {
						//接口正常
						return resolve(res.data);
					} else {
						//接口其他状态码
						return reject(res.data)
					}
				}
			})
		},
	},
	// request 请求
	request(options = {}) {
		return this.config.beforeRequest(options).then(opt => {
			return uni.request(opt)
		}).then(res => {
			return this.config.handleResponse(res)
		})
	}
}

二、创建basics.js(api文件夹=>basics.js),统一放置api处

//封装api请求方法
import api from "@/api/request.js";
//公共接口
//登录接口
export async function login(data) {
    return await api.request({
        url: 'xxxx',  //接口地址
        method: 'post',
        data: data,
    })
}

三、页面中使用

//引入
import { login } from '@/api/basics.js'
	....
	//接口调用
	login({
			...参数
		}).then(res => {
			console.log('登录', res)	
		}).catch((err) => {
			console.log('登录失败', err)	
		})
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gik99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值