153 lines
6.2 KiB
TypeScript
153 lines
6.2 KiB
TypeScript
import { Logger } from "winston";
|
||
interface NetRequestParams {
|
||
url: string;
|
||
method: string;
|
||
queryParams?: any;
|
||
payload?: any;
|
||
additionalHeaders?: any;
|
||
}
|
||
interface NetErrorDetail {
|
||
httpStatus: number;
|
||
code: number;
|
||
message: string;
|
||
}
|
||
export declare class NetError extends Error {
|
||
code: number;
|
||
message: string;
|
||
httpStatus: number;
|
||
constructor({ code, message, httpStatus }: NetErrorDetail);
|
||
}
|
||
/**
|
||
* 网络工具类,提供发送HTTP请求的方法。
|
||
*/
|
||
declare class NetToolBase {
|
||
protected prefix: string;
|
||
protected headers: any;
|
||
protected getHeaders: () => any;
|
||
protected logger: Logger;
|
||
protected requestId: string;
|
||
/**
|
||
* 创建一个网络工具类实例。
|
||
*
|
||
* @param {Object} params - 构造函数参数。
|
||
* @param {string} [params.prefix] - URL前缀。
|
||
* @param {any} [params.headers] - 默认请求头。
|
||
* @param {Function} [params.getHeaders] - 获取请求头的方法。
|
||
* @param {string} [params.requestId] - 请求ID。
|
||
*/
|
||
constructor({ prefix, headers, getHeaders, requestId, }?: {
|
||
prefix?: string;
|
||
headers?: any;
|
||
getHeaders?: () => any;
|
||
requestId?: string;
|
||
});
|
||
/**
|
||
* 记录响应详情并返回响应日志对象。
|
||
* @param response - 响应对象。
|
||
* @param method - 请求使用的HTTP方法。
|
||
* @param headers - 请求头。
|
||
* @param requestBody - 请求体。
|
||
* @param responseBody - 响应体。
|
||
* @returns 响应日志对象。
|
||
*/
|
||
private logResponse;
|
||
/**
|
||
* 发送网络请求并返回一个解析为响应数据的Promise。
|
||
* @param url - 要发送请求的URL。
|
||
* @param method - 请求使用的HTTP方法。
|
||
* @param queryParams - 要包含在URL中的查询参数。
|
||
* @param payload - 请求的有效负载数据。
|
||
* @param additionalHeaders - 要包含在请求中的附加头。
|
||
* @returns 一个解析为响应数据的Promise。
|
||
* @throws 如果网络响应不成功或存在解析错误,则抛出错误。
|
||
*/
|
||
protected request<T = any>({ url, method, queryParams, payload, additionalHeaders, }: NetRequestParams): Promise<T>;
|
||
/**
|
||
* 发送GET请求并返回一个解析为响应数据的Promise。
|
||
*
|
||
* @param url - 要发送请求的URL。
|
||
* @param queryParams - 要包含在URL中的查询参数。
|
||
* @param additionalHeaders - 要包含在请求中的附加头。
|
||
* @returns 一个解析为响应数据的Promise。
|
||
*/
|
||
protected get<T = any>(url: string, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
/**
|
||
* 发送POST请求并返回一个解析为响应数据的Promise。
|
||
*
|
||
* @param url - 要发送请求的URL。
|
||
* @param payload - 请求的有效负载数据。
|
||
* @param queryParams - 要包含在URL中的查询参数。
|
||
* @param additionalHeaders - 要包含在请求中的附加头。
|
||
* @returns 一个解析为响应数据的Promise。
|
||
*/
|
||
protected post<T = any>(url: string, payload?: any, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
/**
|
||
* 发送PUT请求并返回一个解析为响应数据的Promise。
|
||
*
|
||
* @param url - 要发送请求的URL。
|
||
* @param payload - 请求的有效负载数据。
|
||
* @param queryParams - 要包含在URL中的查询参数。
|
||
* @param additionalHeaders - 要包含在请求中的附加头。
|
||
* @returns 一个解析为响应数据的Promise。
|
||
*/
|
||
protected put<T = any>(url: string, payload: any, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
/**
|
||
* 发送DELETE请求并返回一个解析为响应数据的Promise。
|
||
*
|
||
* @param url - 要发送请求的URL。
|
||
* @param payload - 请求的有效负载数据。
|
||
* @param queryParams - 要包含在URL中的查询参数。
|
||
* @param additionalHeaders - 要包含在请求中的附加头。
|
||
* @returns 一个解析为响应数据的Promise。
|
||
*/
|
||
protected del<T = any>(url: string, payload: any, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
/**
|
||
* 发送PATCH请求并返回一个解析为响应数据的Promise。
|
||
*
|
||
* @param url - 要发送请求的URL。
|
||
* @param payload - 请求的有效负载数据。
|
||
* @param queryParams - 要包含在URL中的查询参数。
|
||
* @param additionalHeaders - 要包含在请求中的附加头。
|
||
* @returns 一个解析为响应数据的Promise。
|
||
*/
|
||
protected patch<T = any>(url: string, payload: any, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
}
|
||
declare class NetTool extends NetToolBase {
|
||
request<T = any>({ url, method, queryParams, payload, additionalHeaders, }: NetRequestParams): Promise<T>;
|
||
get<T = any>(url: string, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
post<T = any>(url: string, payload?: any, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
put<T = any>(url: string, payload: any, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
del<T = any>(url: string, payload: any, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
patch<T = any>(url: string, payload: any, queryParams?: any, additionalHeaders?: any): Promise<T>;
|
||
/**
|
||
* 创建一个表示400 Bad Request的响应对象。
|
||
*
|
||
* @param message - 错误消息。
|
||
* @returns 一个表示400 Bad Request的响应对象。
|
||
*/
|
||
badRequest(message: string): import("undici-types").Response;
|
||
/**
|
||
* 创建一个表示404 Not Found的响应对象。
|
||
*
|
||
* @param message - 错误消息。
|
||
* @returns 一个表示404 Not Found的响应对象。
|
||
*/
|
||
notFound(message: string): import("undici-types").Response;
|
||
/**
|
||
* 创建一个表示500 Internal Server Error的响应对象。
|
||
*
|
||
* @param message - 错误消息。
|
||
* @param data - 错误数据。
|
||
* @returns 一个表示500 Internal Server Error的响应对象。
|
||
*/
|
||
serverError(message: string, data?: any): import("undici-types").Response;
|
||
/**
|
||
* 创建一个表示200 OK的响应对象。
|
||
*
|
||
* @param data - 响应数据。
|
||
* @returns 一个表示200 OK的响应对象。
|
||
*/
|
||
ok(data?: any): import("undici-types").Response;
|
||
}
|
||
export { NetTool, NetToolBase };
|