单对象 vs 列表
单对象
{
"code": 0,
"data": {
"id": 123,
"name": "张三"
}
}
列表
{
"code": 0,
"data": {
"items": [...],
"pagination": {
"page": 1,
"total": 100
}
}
}
列表数据包裹在 items 数组中,分页信息放在 pagination 对象
字段命名规范
{{ rule.name }}
{{ rule.good }}
vs
{{ rule.bad }}
{{ rule.desc }}
时间格式设计
{
"created_at": "2024-01-15T09:30:00.000Z",
"updated_at": "2024-01-15T10:00:00.000Z",
"expired_at": "2025-01-15T00:00:00.000Z"
}
格式
ISO 8601
时区
UTC(Z 后缀)或明确偏移量
精度
毫秒 .000Z
命名
xxx_at 表示时间点,xxx_duration 表示时长
空值处理
✅ 推荐
{
"name": "张三",
"nickname": null,
"avatar": null
}
字段存在但无值时返回 null
❌ 不推荐
{
"name": "张三"
}
省略字段,前端需判断是否存在
空数组返回
[]空对象返回
{}前端可统一处理,无需判断字段是否存在
关联数据设计
{{ currentRelation.desc }}
{{ currentRelation.code }}