c4restfulclient
v0.0.5
Published
C4Framework RESTFulClient
Downloads
6
Readme
C4RESTFulClient是基于request的封装:
- 支持Http、Http协议;
- 支持Cookie;
- response的stream处理;
- 支持对Content-Type和Content-Disposition进行Parser的定义,并在接收response时自动选定;
- 支持GET、POST、PUT、PATCH、DELETE这些METHOD。
配置分为ClientOption和RequestOption:
export interface ClientOption {
baseURL ?: string, // 基地址
sslOption ?: { // SSL的配置项
cert : Buffer; // 证书
key : Buffer; // 私钥
passphrase ?: string; // 证书的密码
ca ?: string | Buffer | string[] | Buffer[]; // CA
},
rejectUnauthorized ?: boolean; // 是否对证书进行校验(双向验证时需要)
preambleCRLF ?: boolean; // 在multipart/form-data请求的边界之前追加/CRLF
postambleCRLF ?: boolean; // 在multipart/form-data请求的边界尾部追加/CRLF
timeout ?: number; // 请求超时时间,单位毫秒
gzip ?: boolean; // 是否使用gzip
cookiesOption ?: { // cookie的配置项
enabled : boolean; // 是否开启
store ?: any; // 存储引擎
};
downloadPath ?: string; // 下载文件的保存目录
};
export interface RequestOption {
qs ?: { [key : string] : any }; // 请求的查询字符串
body ?: any; // PATCH、POST和PUT请求的实体,必须是Buffer、string或者ReadSteam,如果json项是true,body不许是可序列化的JSON对象
json ?: boolean; // 设置请求实体是否为JSON,会自动在header中增加application/json的Content-Type
form ?: { [key : string] : any} | string; // 当传递一个对象或查询字符串时,将body设置为querystring表示的值,并在header中添加application/x-www-form-urlencoded的content-type
formData ?: { [key : string] : any}; // 传递给multpart/form-data的请求数据
multipart ?: RequestPart[] | Multipart; // 用于发送multipart/related的请求数据
headers ?: Headers; // http的headers
gzip ?: boolean; // 是否使用gzip
cookiesOption ?: { // cookie的配置项
enabled : boolean; // 是否开启
store ?: any; // 存储引擎
};
// https双向认证
rejectUnauthorized ?: boolean; // 是否对证书进行校验(双向验证时需要)
key ?: Buffer; // 私钥
cert ?: Buffer; // 证书
passphrase ?: string; // 证书的密码
ca?: string | Buffer | string[] | Buffer[]; // CA
// downloadFileName
downloadFileName ?: string; // 下载文件的保存文件名
}
C4RESTFulClient
说明:RESTFul客户端
路径:./src/C4RESTFulClient.ts
成员变量:
- m_DefaultOption,Client的配置,作为请求的默认配置;
- m_Logger,日志对象;
- m_Jar,Cookie;
- m_ContentTypeParsers,处理特定ContentType的Parser的存储字典,key为Content-Type,value为Parser;
- m_ContentDispositionParsers,处理特定ContentDisposition的Parser的存储字典,key为ContentDisposition,value为Parser;
- m_DownloadPath,下载文件保存的目录的路径。
成员方法:
- init
/** * 初始化 * @param option ClientOption */ async init(option ?: ClientOption)
- addParser
/** * 增加Parser * @param parser C4RESTFulParser */ addParser(parser : C4RESTFulParser)
- removeParser
/** * 移除Parser * @param name 要移除的Parser的名字 */ removeParser(name : string)
- request
/** * 请求 * @param url 请求的URL * @param method 请求的METHOD * @param option RequestOption */ request(url : string, method : string, option : RequestOption) : Promise<Request.Response>
- get
/** * GET Method * @param url 请求的URL * @param option RequestOption */ get(url : string, option : RequestOption)
- post
/** * post Method * @param url 请求的URL * @param option RequestOption */ post(url : string, option : RequestOption)
- put
/** * put Method * @param url 请求的URL * @param option RequestOption */ put(url : string, option : RequestOption)
- patch
/** * patch Method * @param url 请求的URL * @param option RequestOption */ patch(url : string, option : RequestOption)
- delete
/** * delete Method * @param url 请求的URL * @param option RequestOption */ delete(url : string, option : RequestOption)
C4RESTFulParser
说明:Parser的接口类
路径:./src/C4RESTFulParser.ts
成员变量:
- name,Parser的名字;
- isStream,是否是流式解析器;
- logger,日志类;
- contentTypes,对应的Content-Type,可以是数组;
- contentDispositionTypes,对应的Content-Disposition,可以是数组
成员方法:
- beforeStream,在请求开始调用,用来开始一些stream处理的准备工作;
- afterStream,在请求结束时调用,用来处理一些stream的收尾工作;
- parse,进行数据处理
C4DefaultJSONParser
说明:JSON解析器
路径:./src/C4DefaultRESTFulParser/C4DefaultJSONParser.ts
成员变量:
- name,Parser的名字;
- isStream,是否是流式解析器;
- logger,日志类;
- contentTypes,对应的Content-Type,可以是数组;
成员方法:
- parse,进行数据处理
C4DefaultTextParser
说明:Text解析器
路径:./src/C4DefaultRESTFulParser/C4DefaultTextParser.ts
成员变量:
- name,Parser的名字;
- isStream,是否是流式解析器;
- logger,日志类;
- contentTypes,对应的Content-Type,可以是数组;
成员方法:
- parse,进行数据处理
C4DefaultXMLParser
说明:XML解析器
路径:./src/C4DefaultRESTFulParser/C4DefaultXMLParser.ts
成员变量:
- name,Parser的名字;
- isStream,是否是流式解析器;
- logger,日志类;
- contentTypes,对应的Content-Type,可以是数组;
成员方法:
- parse,进行数据处理
C4DefaultFileStreamParser
说明:文件下载解析器
路径:./src/C4DefaultRESTFulParser/C4DefaultFileStreamParser.ts
成员变量:
- name,Parser的名字;
- isStream,是否是流式解析器;
- logger,日志类;
- downloadPath,下载文件的保存路径;
- contentDispositionTypes,对应的Content-Disposition,可以是数组
成员方法:
- beforeStream,在请求开始调用,用来开始一些stream处理的准备工作;
- afterStream,在请求结束时调用,用来处理一些stream的收尾工作;
- parse,进行数据处理
C4CSVFileStreamParser
说明:CSV文件下载解析器
路径:./src/C4DefaultRESTFulParser/C4CSVFileStreamParser.ts
成员变量:
- name,Parser的名字;
- isStream,是否是流式解析器;
- logger,日志类;
- downloadPath,下载文件的保存路径;
- contentTypes,对应的Content-Type,可以是数组;
成员方法:
- beforeStream,在请求开始调用,用来开始一些stream处理的准备工作;
- afterStream,在请求结束时调用,用来处理一些stream的收尾工作;
- parse,进行数据处理