数据模型
介绍
通用数据模型模块(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:
- 修改
code字段名或成功判断逻辑 - 修改
message字段名 - 调整
isSuccess()方法的判断条件
修改后会统一影响所有网络请求的处理逻辑。
注意事项
- core/model 只放通用模型,业务实体放在 foundation/biz_model。
- 网络响应格式修改只需改这里,会统一影响所有请求。
- 字段建议使用可选类型(
?),便于处理接口返回的不完整数据。