微信小程序TypeScript请求封装(TS+request),开箱即用

本文介绍了如何在微信小程序项目中使用TypeScript编写封装的HTTP请求模块,包括request.ts文件的关键部分,如请求方法枚举、配置接口、错误处理和单例模式,以及如何在其他模块中调用这些封装的接口以统一管理请求逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概要

之前一直使用js来写小程序,现在切换使用TypeScript模板来写,找了很久没有找到一个TypeScript的request请求,所以就有了下面这些代码。

目录结构

提示:这是在所需的所有文件

- miniprogram
    - api
        - index.ts
        - base.ts
        - system
            - userApi.ts
    - utils
        - request.ts

在这里插入图片描述

封装request

这是最关键的request.ts文件,这一步解决了请求也就完成了一大半,已经做好了如401等登录失效判断。


/**
 * @description: HTTP请求方法枚举
 */
export enum HttpMethod {
   
	GET = 'GET',
	POST = 'POST',
	OPTIONS = 'OPTIONS',
	PUT = 'PUT',
	DELETE = 'DELETE'
}

/**
 * @description: HTTP请求配置
*/
interface RequestConfig {
   
	/** API路径 */
	url?: string
	/** Method类型 */
	method?: HttpMethod
	/** 接口返回数据 */
	data?: any
	/** 无TOKEN触发异常捕获时,是否执行异常逻辑 */
	needToken?: boolean
	/** Header头部 */
	header?: object
	/** 返回的数据格式 */
	dataType?: string
	/** 请求报错时,是否弹出message提示(默认弹出)*/
	noShowMsg?: boolean
}

/**
 * @description: 声明业务数据类型
*/
export interface MyAwesomeData<T> {
   
	code: number
	msg: string
	data: T
}

class HttpRequest {
   
	private static instance: HttpRequest
	private constructor() {
    }
	/** 请求函数(单例模式)
	*
	* **注意:**
	* `method`需使用`HttpMethod`枚举类,切勿自行定义
	*
	* **示例代码**
	* ```js
	 HttpRequest.getInstance().request({
		 url: '/Api',
		 method: HttpMethod.GET
	 })
	* ```
	*/
	public static getInstance(): HttpRequest {
   
		if (!this.instance) {
   
			this.instance = new HttpRequest()
		}
		return this.instance
	}

	// 处理请求异常状态码
	private handerErrorStatus(statusCode: number, requestConfig: RequestConfig) {
   
		let msg = '服务找不到'
		if (statusCode === 502 || statusCode === 503) {
   
			msg = '服务器开小差了~'
		}
		
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值