From d14f625a1b80ac06bd582d40cee566ec1c19b19c Mon Sep 17 00:00:00 2001
From: Tevin <tingquanren@163.com>
Date: Mon, 03 Mar 2025 14:23:05 +0800
Subject: [PATCH] 知识库文档,请求层基类微调

---
 _knowledges/201-请求层基类Fetcher.md |   60 +++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 37 insertions(+), 23 deletions(-)

diff --git "a/_knowledges/201-\345\270\270\347\224\250\345\237\272\347\261\273.md" "b/_knowledges/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.md"
similarity index 67%
rename from "_knowledges/201-\345\270\270\347\224\250\345\237\272\347\261\273.md"
rename to "_knowledges/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.md"
index 3d0109e..ac75184 100644
--- "a/_knowledges/201-\345\270\270\347\224\250\345\237\272\347\261\273.md"
+++ "b/_knowledges/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.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 类型,禁止接其他类型
 
-#### 前端统一响应状态码
+### 前端统一响应状态码
 
 | 状态码 | 意义 |
 |---|---|

--
Gitblit v1.9.1