0.0.13 • Published 2 years ago
ts-ma-util-rpc v0.0.13
MaHttpClient
1. 概述
MaHttpClient, 是基于三方库urllib实现的一个 HttpClient,应用可以使用MaHttpClient便捷地完成任何 HTTP 请求。
2. MaHttpClient具备的功能如下:
1. 封装发起http请求的get、post、put、delete方法
2. 区分data params参数
3. 支持接口代理
4. 支持自定义请求header
5. 支持设置请求超时间等配置信息
3. 参数data、param、query的区分
data: 请求的参数体 query: 请求url path上的值 params: 请求url路径问号后面的参数
```
假设请求的url为:
const url = '/v1/catalog/remove/:id?category=:category'
params = {category: 10 }
query = { id: 1 }
最终生产的url = '/v1/catalog/remove/1?category=10'
data、query、params 都是可选参数。
```
4. 应用
4.1 应用工程基于ma-core-mono库, 可直接使用
ma-core-mono工程已经集成了rpc库, 将rpc暴露的maHttpClient挂载在app实例上,访问方式app.maHttpClient, 所以基于ma-core-mono的工程可以直接使用rpc请求网络,具体使用方式如下:
```
this.app.maHttpClient.doGet({
url: '',
data: {},
params: {},
query: {},
});
其中请求的方法包含doGet、doPost、doPut、doDelete, 根据具体场景选择使用。
```
4.2 单独引用
```
// 引入
import { MaHttpClient } from '@ma-dev/ma-util-rpc'
// 实例化
const httpClient = new MaHttpClient({ httpClient: config });
其中config中的配置项都是可选项,HttpClient有一些默认的全局配如下, 若需覆盖这些默认配置,则可以通过new MaHttpClient实例时通过参数传入:
{
request: {
timeout: 3000 // 请求超时时间设置
}
headers: {}, // 通用的请求头设置
enableDNSCache: false, // 是否开启本地DNS缓存
dnsCacheLookupInterval: 10000, // 对同一个域名进行DNS查询的最小间隔时间
dnsCacheMaxLength: 1000, // DNS同时缓存的最大域名数量
httpAgent: {
// 默认开启http keepAlive
keepAlive: true,
// 空闲的KeepAlive socket最长可以存活的时间
freeSocketKeepAliveTimeout: 4000,
// 当socket超时没活动,会被处理掉
timeout: 30000,
// 允许创建的最大socket数
maxSockets: Number.MAX_SAFE_INTEGER,
// 最大空闲socket数
maxFreeSockets: 256
}
httpsAgent: { /* 配置同httpAgent,不过是针对Https */ }
};
// 调用对应方法doGet、doPost、doPut、doDelete
httpClient.doGet({
url: '',
data: {},
params: {},
query: {}
});
其中请求的方法包含doGet、doPost、doPut、doDelete, 根据具体场景选择使用。
```
5. 自定义header
this.app.maHttpClient.doGet({
url: '',
data: {},
headers: { // 自定义header
token: ''
},
});
```
0.0.13
2 years ago