直接跳到内容

数据模型

介绍

通用数据模型模块(core/model)定义与业务无关的基础数据结构,如网络响应格式、分页结构、通用 ID 类型等。这些模型被 foundation 和 feature 层广泛使用。

与 foundation/biz_model 的区别

模块内容示例
core/model通用数据模型,与业务无关NetworkResponse、NetworkPageData、Id、Ids
foundation/biz_model业务实体与请求对象Auth、Goods、User、PasswordLoginRequest

网络响应模型

NetworkResponse<T>

统一的网络响应结构,需要根据你的接口来调整。当前项目以 code == 1000 视为成功:

ts
/**
 * @file 网络响应结构
 */
export class NetworkResponse<T> {
  /**
   * 响应数据
   */
  data?: T;
  /**
   * 状态码
   */
  code?: number;
  /**
   * 提示信息
   */
  message?: string;

  /**
   * 判断是否成功
   */
  isSuccess(): boolean {
    return this.code === 1000;
  }
}

如果你的项目是 code == 200,或者字段叫 msg,都应在这里统一修改。

NetworkPageData<T>

分页数据结构:

ts
/**
 * @file 分页数据结构
 */
export class NetworkPageData<T> {
  /**
   * 数据列表
   */
  list?: T[];
  /**
   * 分页信息
   */
  pagination?: NetworkPageMeta;
}

NetworkPageMeta

分页元信息:

ts
/**
 * @file 分页元信息
 */
export class NetworkPageMeta {
  /**
   * 总条数
   */
  total?: number;
  /**
   * 当前页码
   */
  page?: number;
  /**
   * 每页数量
   */
  size?: number;
}

自定义网络响应

如果你的后端接口格式不同,需要修改 NetworkResponse

  1. 修改 code 字段名或成功判断逻辑
  2. 修改 message 字段名
  3. 调整 isSuccess() 方法的判断条件

修改后会统一影响所有网络请求的处理逻辑。

注意事项

  • core/model 只放通用模型,业务实体放在 foundation/biz_model。
  • 网络响应格式修改只需改这里,会统一影响所有请求。
  • 字段建议使用可选类型(?),便于处理接口返回的不完整数据。