BackendApi
Direct Subclass:
统一封装后端接口的调用
- 集中配置接口
- 统一发送请求
- 统一处理请求的返回
- 统一适配请求返回的数据格式
- 统一异常处理
- 预留扩展点
此类是抽象类, 其他平台继承此类来实现具体发送请求的功能 例如: BackendApi -> WeappBackendApi(微信小程序平台的封装) -> Web$BackendApi(Web平台, 基于jQuery/Zepto的封装)
Constructor Summary
Public Constructor | ||
public |
constructor(apiConfig: object, defaultRequestOptions: object, loggerLevel: number) |
Member Summary
Public Members | ||
public |
apiConfig: * |
|
public |
|
|
public |
|
|
public |
logger: * |
|
public |
sending: {} |
|
public |
stalled: *[] |
Method Summary
Public Methods | ||
public abstract |
$sendHttpRequest(requestOptions: object): Promise 发送 HTTP 请求的具体实现 |
|
public |
addApiConfig(namespace: string | object, apiConfig: object): BackendApi 添加一组后端 HTTP 接口的配置 |
|
public abstract |
请求结束后的统一处理 |
|
public abstract |
beforeSend(requestOptions: object): undefined | Promise 发送请求前的统一处理 |
|
public |
loadApiConfig(requestOptions: object): Promise 加载后端 HTTP 接口的配置 |
|
public |
normalizeRequestResult(requestOptions: any, requestResult: any): any 标准化接口返回的数据格式, 方便适配各种接口返回数据格式不同的情况 |
|
public |
sendRequest(name: string, options: object, namespace: string): Promise 统一发送(接口)请求的方法 |
Private Methods | ||
private |
_getRequestOptions(name: string, options: object, namespace: string): object 获取请求的参数 |
Public Constructors
public constructor(apiConfig: object, defaultRequestOptions: object, loggerLevel: number) source
Params:
Name | Type | Attribute | Description |
apiConfig | object | 后端 HTTP 接口的配置, 将 HTTP 接口的调用视为一次远程调用(RPC) 配置项是接口名称和请求参数的映射 例如
|
|
defaultRequestOptions | object | 默认的请求参数 |
|
loggerLevel | number | 日志级别, 默认为 Logger.LEVEL_WARN 级别 TODO: 如果微信小程序支持获取当前运行的版本(开发版/体验版/线上版), 那么日志级别的默认值可以根据运行的版本来判断, 非线上版本自动为 TRACE 级别 |
Public Members
public apiConfig: * source
public defaultRequestOptions: * source
public logger: * source
public sending: {} source
public stalled: *[] source
Public Methods
public abstract $sendHttpRequest(requestOptions: object): Promise source
发送 HTTP 请求的具体实现
Params:
Name | Type | Attribute | Description |
requestOptions | object | 请求参数 |
public addApiConfig(namespace: string | object, apiConfig: object): BackendApi source
添加一组后端 HTTP 接口的配置
Params:
Name | Type | Attribute | Description |
namespace | string | object |
|
给接口名添加 namespace, 例如: 给 'getUser' 添加 'user' 的 namespace, 接口名会变为 'user.getUser'; 如果参数为 object 类型, 则表示直接添加接口配置, 不设置 namespace |
apiConfig | object |
public abstract beforeSend(requestOptions: object): undefined | Promise source
发送请求前的统一处理
Params:
Name | Type | Attribute | Description |
requestOptions | object |
public loadApiConfig(requestOptions: object): Promise source
加载后端 HTTP 接口的配置
Params:
Name | Type | Attribute | Description |
requestOptions | object | 请求参数 |
public normalizeRequestResult(requestOptions: any, requestResult: any): any source
标准化接口返回的数据格式, 方便适配各种接口返回数据格式不同的情况
标准格式为:
{
"data": {},
"status": 0,
"statusInfo": {
"message": "给用户的提示信息",
"detail": "用于排查错误的详细错误信息"
}
}
Params:
Name | Type | Attribute | Description |
requestOptions | any | ||
requestResult | any |
Return:
any |