/**
* @file 响应解析器接口
* @description 定义网络响应的解析策略,支持不同后端响应格式
* @author JunBin.Yang
*/
import { Unknown } from "@core/common";
/**
* 响应解析器接口
* 用于解析不同格式的后端响应
* @template T 响应数据类型
*/
export interface ResponseParser<T = Unknown> {
/**
* 判断响应是否成功
* @param response 原始响应数据
* @returns 是否成功
*/
isSuccess(response: Unknown): boolean;
/**
* 获取响应数据
* @param response 原始响应数据
* @returns 解析后的数据
*/
getData(response: Unknown): T | null;
/**
* 获取响应消息
* @param response 原始响应数据
* @returns 响应消息
*/
getMessage(response: Unknown): string | null;
/**
* 获取响应状态码
* @param response 原始响应数据
* @returns 状态码
*/
getCode(response: Unknown): number;
}
/**
* 响应解析器配置
*/
export interface ResponseParserConfig {
/**
* 成功状态码
*/
successCode: number;
/**
* 数据字段名
*/
dataField: string;
/**
* 消息字段名
*/
messageField: string;
/**
* 状态码字段名
*/
codeField: string;
}
/**
* 默认响应解析器配置
*/
export const DEFAULT_PARSER_CONFIG: ResponseParserConfig = {
successCode: 1000,
dataField: 'data',
messageField: 'message',
codeField: 'code'
};