| | |
| | | - [引用方法](#引用方法) |
| | | - [构造函数](#构造函数) |
| | | - [主要方法](#主要方法) |
| | | - [`spellURL(devSuffix, serSuffix)`](#spellurldevsuffix-sersuffix) |
| | | - [`get(url, data, options)`](#geturl-data-options) |
| | | - [`post(url, data, options)`](#posturl-data-options) |
| | | - [`query(type, url, data, options)`](#querytype-url-data-options) |
| | | - [`stringToCamel(str)`](#stringtocamelstr) |
| | | - [`stringToUnderline(str)`](#stringtounderlinestr) |
| | | - [`transKeyName(type, json)`](#transkeynametype-json) |
| | | - [`transImgPath(type, path)`](#transimgpathtype-path) |
| | | - [请求的 options 配置](#请求的-options-配置) |
| | | - [`hostType` 主机类型](#hosttype-主机类型) |
| | | - [`silence` 静音请求](#silence-静音请求) |
| | | - [响应处理](#响应处理) |
| | | - [处理流程](#处理流程) |
| | | - [前端统一响应数据格式](#前端统一响应数据格式) |
| | |
| | | |
| | | ## 主要方法 |
| | | |
| | | ```js |
| | | /** |
| | | * 拼写 URL 地址 |
| | | * @param {String} devSuffix - 开发环境URL后缀 |
| | | * @param {String} serSuffix - 服务器环境URL后缀 |
| | | * @return {String} 拼接后的 URL 地址(不含域名) |
| | | */ |
| | | spellURL(devSuffix, serSuffix) {} |
| | | |
| | | /** |
| | | * 发送 POST 请求,query 的简写 |
| | | * @param {String} url - 请求的 URL |
| | | * @param {*} data - 请求参数 |
| | | * @param {Object} [options] - 请求选项 |
| | | * @return {Promise<any>} 返回一个 Promise 对象,解析为响应数据 |
| | | */ |
| | | post(url, data, options = {}) {} |
| | | ### `spellURL(devSuffix, serSuffix)` |
| | | |
| | | /** |
| | | * 基础 AJAX 请求 |
| | | * @param {String} type - 请求类型(GET 或 POST)。 |
| | | * @param {String} url - 请求的 URL。 |
| | | * @param {*} [data] - 请求参数。 |
| | | * @param {Object} [options] - 请求选项。 |
| | | * @return {Promise<any>} 返回一个 Promise 对象,解析为响应数据。 |
| | | */ |
| | | query(type, url, data = null, options = {}) {} |
| | | **功能** |
| | | 根据开发环境和生产环境拼接 URL 地址。 |
| | | |
| | | /** |
| | | * 下划线字符串转小驼峰 |
| | | * @param {String} str - 下划线字符串 |
| | | * @return {String} 转换后的驼峰字符串 |
| | | */ |
| | | stringToCamel(str) {} |
| | | **参数** |
| | | | 参数名 | 类型 | 说明 | |
| | | | --------- | ------ | ------------------------- | |
| | | | devSuffix | String | 开发环境 URL 后缀 | |
| | | | serSuffix | String | 生产环境 URL 后缀(可选) | |
| | | |
| | | /** |
| | | * 小驼峰字符串转下划线 |
| | | * @param {String} str - 小驼峰字符串 |
| | | * @return {String} 转换后的下划线字符串 |
| | | */ |
| | | stringToUnderline(str) {} |
| | | **返回值** |
| | | | 类型 | 说明 | |
| | | | ------ | --------------------------------- | |
| | | | String | 拼接后的完整 URL 地址(不含域名) | |
| | | |
| | | /** |
| | | * 驼峰与下划线命名模式转换 |
| | | * @param {String} type - 'camel' 或 'underline' |
| | | * @param {Object} json - JSON 对象 |
| | | * @return {Object} 转换后的 JSON 对象 |
| | | */ |
| | | transKeyName(type, json) {} |
| | | **示例** |
| | | ```javascript |
| | | class FCommon extends Fetcher { |
| | | |
| | | getUserInfo(id) { |
| | | const url = this.spellURL('getUserInfo', 'user/user_info'); |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | 说明: |
| | | * spellURL:拼接URL时,会根据是否处于本地开发场景,来选择不同的 URL 前缀 |
| | | * query:如果在小程序中,会自动存取 cookies |
| | | **注意事项** |
| | | - 如果启用了 Mock 模式(比如本地开发时),URL 会指向本地的 JSON 文件。 |
| | | - 支持处理路径中的 `../` 和多余的 `/`。 |
| | | |
| | | 例如: |
| | | --- |
| | | |
| | | ### `get(url, data, options)` |
| | | |
| | | **功能** |
| | | 发起 GET 请求。 |
| | | |
| | | **参数** |
| | | | 参数名 | 类型 | 说明 | |
| | | | ------- | ------ | ---------------- | |
| | | | url | String | 请求的 URL 地址 | |
| | | | data | Object | 请求参数 | |
| | | | options | Object | 请求配置(可选) | |
| | | |
| | | **返回值** |
| | | | 类型 | 说明 | |
| | | | ------- | ---------------------- | |
| | | | Promise | 返回请求结果的 Promise | |
| | | |
| | | --- |
| | | |
| | | ### `post(url, data, options)` |
| | | |
| | | **功能** |
| | | 发起 POST 请求,query 方法的简写 |
| | | |
| | | **参数** |
| | | | 参数名 | 类型 | 说明 | |
| | | | ------- | ------ | ---------------- | |
| | | | url | String | 请求的 URL 地址 | |
| | | | data | Object | 请求参数 | |
| | | | options | Object | 请求配置(可选) | |
| | | |
| | | **返回值** |
| | | | 类型 | 说明 | |
| | | | ------- | ---------------------- | |
| | | | Promise | 返回请求结果的 Promise | |
| | | |
| | | **示例** |
| | | ```js |
| | | class FCommon extends Fetcher { |
| | | |
| | | // 请求方法使用示例:获取用户基本信息(提供给数据控制层中调) |
| | | getUserInfo(id) { |
| | | getUserInfo() { |
| | | const url = this.spellURL('getUserInfo', 'user/user_info'); |
| | | const send = { |
| | | id |
| | | }; |
| | | const send = {}; |
| | | return this.post(url, send); |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### `query(type, url, data, options)` |
| | | |
| | | **功能** |
| | | 发起基础 AJAX 请求 |
| | | |
| | | **参数** |
| | | | 参数名 | 类型 | 说明 | |
| | | | ------- | ------ | -------------------------------- | |
| | | | type | String | 请求类型(如 `'get'`、`'post'`) | |
| | | | url | String | 请求的 URL 地址 | |
| | | | data | Object | 请求参数(可选) | |
| | | | options | Object | 请求配置(可选) | |
| | | |
| | | **返回值** |
| | | | 类型 | 说明 | |
| | | | ------- | ---------------------- | |
| | | | Promise | 返回请求结果的 Promise | |
| | | |
| | | **注意事项** |
| | | - 小程序环境下会自动处理 Cookie,无需手动设置 |
| | | |
| | | --- |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | ### `stringToCamel(str)` |
| | | |
| | | **功能** |
| | | 将下划线命名的字符串转换为小驼峰命名 |
| | | |
| | | **参数** |
| | | | 参数名 | 类型 | 说明 | |
| | | | ------ | ------ | ---------------- | |
| | | | str | String | 需要转换的字符串 | |
| | | |
| | | **返回值** |
| | | | 类型 | 说明 | |
| | | | ------ | -------------------- | |
| | | | String | 转换后的小驼峰字符串 | |
| | | |
| | | --- |
| | | |
| | | ### `stringToUnderline(str)` |
| | | **功能** |
| | | 将小驼峰命名的字符串转换为下划线命名,如果没有大写字母,则返回原字符串 |
| | | |
| | | **参数** |
| | | | 参数名 | 类型 | 说明 | |
| | | | ------ | ------ | ---------------- | |
| | | | str | String | 需要转换的字符串 | |
| | | |
| | | **返回值** |
| | | | 类型 | 说明 | |
| | | | ------ | -------------------- | |
| | | | String | 转换后的下划线字符串 | |
| | | |
| | | --- |
| | | |
| | | ### `transKeyName(type, json)` |
| | | **功能** |
| | | 将 JSON 对象的键名在驼峰与下划线命名模式之间转换 |
| | | |
| | | **参数** |
| | | | 参数名 | 类型 | 说明 | |
| | | | ------ | ------ | ------------------------------------ | |
| | | | type | String | 转换类型:`'camel'` 或 `'underline'` | |
| | | | json | Object | 需要转换的 JSON 对象 | |
| | | |
| | | **返回值** |
| | | | 类型 | 说明 | |
| | | | ------ | ------------------ | |
| | | | Object | 转换后的 JSON 对象 | |
| | | |
| | | **示例** |
| | | ```js |
| | | class FCommon extends Fetcher { |
| | | |
| | | saveUserInfo() { |
| | | const json = { 'user_name': 'John' }; |
| | | const result = this.transKeyName('camel', json); // 返回 { userName: 'John' } |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | **注意事项** |
| | | - 支持嵌套对象的递归转换 |
| | | |
| | | --- |
| | | |
| | | ### `transImgPath(type, path)` |
| | | **功能** |
| | | 转换图片路径,支持修复补齐或裁剪多余部分 |
| | | 适用于处理旧版运营平台的图片路径,确保路径格式统一 |
| | | |
| | | **参数** |
| | | | 参数名 | 类型 | 说明 | |
| | | | ------ | ------ | ---------------------------- | |
| | | | type | String | 转换类型:`'fix'` 或 `'cut'` | |
| | | | path | String | 需要转换的图片路径 | |
| | | |
| | | **返回值** |
| | | | 类型 | 说明 | |
| | | | ------ | ---------------- | |
| | | | String | 转换后的图片路径 | |
| | | |
| | | **示例** |
| | | ```js |
| | | |
| | | class FCommon extends Fetcher { |
| | | |
| | | saveUserInfo() { |
| | | const path = '4/5e56307c489c7.jpg'; |
| | | const result = this.transImgPath('fix', path); // 返回 '/upload/4/5e56307c489c7.jpg' |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | **注意事项** |
| | | - 支持多路径(逗号分隔)的批量转换,即先分别处理每一项后再(逗号)合并 |
| | | |
| | | |
| | | ## 请求的 options 配置 |
| | | |
| | | ### `hostType` 主机类型 |
| | | 在混合 App 中,指定本次请求的主机类型(即域名) |
| | | |
| | | - `base` 基础主机(预登陆用) |
| | | - `main` 默认主机,默认值,正常业务主机 |
| | | - 优先由 java 层在 webview 的 URL 上指定 |
| | | - 未指定时,按文件 project.config.json 的 host.buildHost 项值指定 |
| | | |
| | | ### `silence` 静音请求 |
| | | 设为 true 时,如果请求失败,不显示提示 |
| | | |
| | | |
| | | |
| | | ## 响应处理 |
| | | |
| | | ### 处理流程 |