File was renamed from _knowledges/201-常用基类.md |
| | |
| | | # 常用基类 |
| | | # 请求层基类 Fetcher.js |
| | | |
| | | ## 请求层基类 Fetcher.js |
| | | 类 Fetcher 是一个用于处理 HTTP 请求的工具类,包含了多种方法来简化和统一请求的处理,请求层的每个请求集,都必须继承此类 |
| | | |
| | | 类 Fetcher 是一个用于处理 HTTP 请求的工具类,包含了多种方法来简化和统一请求的处理 |
| | | |
| | | ### 引用方法 |
| | | ## 引用方法 |
| | | |
| | | ```js |
| | | import { |
| | |
| | | } 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/'], |
| | | }); |
| | |
| | | } |
| | | ``` |
| | | |
| | | ### 主要方法 |
| | | ## 主要方法 |
| | | |
| | | ```js |
| | | /** |
| | |
| | | ``` |
| | | |
| | | 说明: |
| | | * 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. 将响应内容传给数据控制层之前,会进行如下处理 |
| | | - 将数据中的键名,转换为的驼峰 |
| | | - 将数据中的内容,如果是常规数字的字符串,转为数值 |
| | | |
| | | #### 前端统一响应数据格式 |
| | | ### 前端统一响应数据格式 |
| | | |
| | | 格式如下: |
| | | |
| | |
| | | |
| | | 注意,为了保证接口数据的扩展性,data 只能接 Object 类型,禁止接其他类型 |
| | | |
| | | #### 前端统一响应状态码 |
| | | ### 前端统一响应状态码 |
| | | |
| | | | 状态码 | 意义 | |
| | | |---|---| |