UNPKG

c4restfulclient

Version:
334 lines (232 loc) 9.08 kB
<h1>C4RESTFulClient 说明</h1> <h2>简介</h2> C4RESTFulClient是基于request的封装: * 支持Http、Http协议; * 支持Cookie; * response的stream处理; * 支持对Content-Type和Content-Disposition进行Parser的定义,并在接收response时自动选定; * 支持GET、POST、PUT、PATCH、DELETE这些METHOD。 <h2>配置</h2> 配置分为ClientOption和RequestOption: <h3>ClientOption</h3> <code> 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; // 下载文件的保存目录 }; </code> <h3>RequestOption</h3> <code> 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; // 下载文件的保存文件名 } </code> <h2>类s</h2> * 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 <code> /** * 初始化 * @param option ClientOption */ async init(option ?: ClientOption) </code> <hr> * addParser <code> /** * 增加Parser * @param parser C4RESTFulParser */ addParser(parser : C4RESTFulParser) </code> <hr> * removeParser <code> /** * 移除Parser * @param name 要移除的Parser的名字 */ removeParser(name : string) </code> <hr> * request <code> /** * 请求 * @param url 请求的URL * @param method 请求的METHOD * @param option RequestOption */ request(url : string, method : string, option : RequestOption) : Promise<Request.Response> </code> <hr> * get <code> /** * GET Method * @param url 请求的URL * @param option RequestOption */ get(url : string, option : RequestOption) </code> <hr> * post <code> /** * post Method * @param url 请求的URL * @param option RequestOption */ post(url : string, option : RequestOption) </code> <hr> * put <code> /** * put Method * @param url 请求的URL * @param option RequestOption */ put(url : string, option : RequestOption) </code> <hr> * patch <code> /** * patch Method * @param url 请求的URL * @param option RequestOption */ patch(url : string, option : RequestOption) </code> <hr> * delete <code> /** * delete Method * @param url 请求的URL * @param option RequestOption */ delete(url : string, option : RequestOption) </code> <hr> * C4RESTFulParser * 说明:Parser的接口类 * 路径:./src/C4RESTFulParser.ts * 成员变量: * name,Parser的名字; * isStream,是否是流式解析器; * logger,日志类; * contentTypes,对应的Content-Type,可以是数组; * contentDispositionTypes,对应的Content-Disposition,可以是数组 * 成员方法: * beforeStream,在请求开始调用,用来开始一些stream处理的准备工作; * afterStream,在请求结束时调用,用来处理一些stream的收尾工作; * parse,进行数据处理 <hr> * C4DefaultJSONParser * 说明:JSON解析器 * 路径:./src/C4DefaultRESTFulParser/C4DefaultJSONParser.ts * 成员变量: * name,Parser的名字; * isStream,是否是流式解析器; * logger,日志类; * contentTypes,对应的Content-Type,可以是数组; * 成员方法: * parse,进行数据处理 <hr> * C4DefaultTextParser * 说明:Text解析器 * 路径:./src/C4DefaultRESTFulParser/C4DefaultTextParser.ts * 成员变量: * name,Parser的名字; * isStream,是否是流式解析器; * logger,日志类; * contentTypes,对应的Content-Type,可以是数组; * 成员方法: * parse,进行数据处理 <hr> * C4DefaultXMLParser * 说明:XML解析器 * 路径:./src/C4DefaultRESTFulParser/C4DefaultXMLParser.ts * 成员变量: * name,Parser的名字; * isStream,是否是流式解析器; * logger,日志类; * contentTypes,对应的Content-Type,可以是数组; * 成员方法: * parse,进行数据处理 <hr> * C4DefaultFileStreamParser * 说明:文件下载解析器 * 路径:./src/C4DefaultRESTFulParser/C4DefaultFileStreamParser.ts * 成员变量: * name,Parser的名字; * isStream,是否是流式解析器; * logger,日志类; * downloadPath,下载文件的保存路径; * contentDispositionTypes,对应的Content-Disposition,可以是数组 * 成员方法: * beforeStream,在请求开始调用,用来开始一些stream处理的准备工作; * afterStream,在请求结束时调用,用来处理一些stream的收尾工作; * parse,进行数据处理 <hr> * C4CSVFileStreamParser * 说明:CSV文件下载解析器 * 路径:./src/C4DefaultRESTFulParser/C4CSVFileStreamParser.ts * 成员变量: * name,Parser的名字; * isStream,是否是流式解析器; * logger,日志类; * downloadPath,下载文件的保存路径; * contentTypes,对应的Content-Type,可以是数组; * 成员方法: * beforeStream,在请求开始调用,用来开始一些stream处理的准备工作; * afterStream,在请求结束时调用,用来处理一些stream的收尾工作; * parse,进行数据处理 <hr>