WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2025-03-03 d14f625a1b80ac06bd582d40cee566ec1c19b19c
知识库文档,请求层基类微调
1 files renamed
60 ■■■■■ changed files
_knowledges/201-请求层基类Fetcher.md 60 ●●●●● patch | view | raw | blame | history
_knowledges/201-请求层基类Fetcher.md
File was renamed from _knowledges/201-常用基类.md
@@ -1,10 +1,8 @@
# 常用基类
# 请求层基类 Fetcher.js
## 请求层基类 Fetcher.js
类 Fetcher 是一个用于处理 HTTP 请求的工具类,包含了多种方法来简化和统一请求的处理,请求层的每个请求集,都必须继承此类
类 Fetcher 是一个用于处理 HTTP 请求的工具类,包含了多种方法来简化和统一请求的处理
### 引用方法
## 引用方法
```js
import {
@@ -12,21 +10,16 @@
} from '@components/bases/Fetcher';
```
### 构造函数
## 构造函数
构造函数接受一个配置对象 options 作为参数,包含如下属性
| 属性 | 类型 | 必填 | 描述 | 默认值 |
|---|---|---|---|---|
| urlPrefix | array | 是 | 请求URL的前缀 | ['/api/common/', '/api/common/']  |
说明:
* urlPrefix数组包含两项,第一项为本地Mock的URL前缀,第二项为服务器接口的前缀,二者可以不一样
构造函数接受一个配置对象 options 作为参数,包含如下属性:
* **urlPrefix** 数组,包含两项,第一项为本地 Mock 的 URL 前缀,第二项为服务器接口的前缀
```js
class FCommon extends Fetcher {
    // 构造函数示例
    constructor() {
        // 构造函数使用示例
        super({
            urlPrefix: ['/api/order/', '/mini/order/'],
        });
@@ -34,7 +27,7 @@
}
```
### 主要方法
## 主要方法
```js
/**
@@ -88,18 +81,39 @@
```
说明:
* spellURL:拼接URL时,会根据是否处于 mock 模式来选择不同的 URL 前缀(本地开发自动使用 mock 模式)
* spellURL:拼接URL时,会根据是否处于本地开发场景,来选择不同的 URL 前缀
* query:如果在小程序中,会自动存取 cookies
### 响应处理
例如:
#### 处理流程
```js
class FCommon extends Fetcher {
    // 请求示例:获取用户基本信息(在数据控制层中调用)
    getUserInfo(id) {
        const url = this.spellURL('getUserInfo', 'user/user_info');
        const send = {
            id
        };
        return this.post(url, send);
    }
}
```
## 响应处理
### 处理流程
1. query 方法调用 Taro.request 发送请求
2. 收到响应后,先检测响应数据格式,发现其他类型的响应格式时,会自动转换为:前端统一响应数据格式
3. 根据响应格式,如果成功,回传递响应内容进数据控制层,如果失败,直接失败提示
2. 收到响应后,先检测响应数据格式,发现其他类型的响应格式时,会自动转换为:**前端统一响应数据格式**
3. 根据响应格式
    - 如果成功,将响应内容,回传给数据控制层
    - 如果失败,直接失败提示,回传空内容给数据控制层
4. 将响应内容传给数据控制层之前,会进行如下处理
    - 将数据中的键名,转换为的驼峰
    - 将数据中的内容,如果是常规数字的字符串,转为数值
#### 前端统一响应数据格式
### 前端统一响应数据格式
格式如下:
@@ -131,7 +145,7 @@
注意,为了保证接口数据的扩展性,data 只能接 Object 类型,禁止接其他类型
#### 前端统一响应状态码
### 前端统一响应状态码
| 状态码 | 意义 |
|---|---|