User Profile Mock API
源码:
web/src/mock/modules/user/profile.ts
接口列表
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/users/me | 获取当前用户完整信息 |
| PUT | /api/v1/users/me | 更新用户信息(支持部分更新) |
请求参数
GET /api/v1/users/me
无请求参数。
PUT /api/v1/users/me
请求体为 JSON,支持部分更新,允许的字段:
| 参数 | 类型 | 说明 |
|---|---|---|
| userName | string | 用户名 |
| avatar | string | 头像 |
| learned | string[] | 已学会的汉字列表 |
| records | RecordItem[] | 学习记录 |
| reviewStages | object | 复习阶段数据 |
| lastDailyReview | string | null | 上次每日复习日期 |
| settings | object | 用户设置 |
| streak | number | 连续学习天数 |
| maxStreak | number | 最大连续天数 |
| lastStudyDate | string | null | 最后学习日期 |
| badges | BadgeLog[] | 已解锁徽章 |
| totalEXP | number | 总经验值 |
| shopPoints | number | 商店积分 |
| pointLog | PointLogItem[] | 积分日志 |
| etymologyViewed | string[] | 已查看字源的汉字 |
| shopRewards | ShopReward[] | 商店奖励 |
| shopHistory | ShopHistoryItem[] | 兑换历史 |
| shopPassword | string | 商店密码 |
| shopLockUntil | number | 密码锁定截止时间戳 |
| shopAttempts | number | 密码错误尝试次数 |
| planetUnlocks | string[] | 已解锁星球列表 |
响应格式
GET /api/v1/users/me
json
{
"code": 0,
"msg": "ok",
"data": {
"userName": "汉字探索者",
"avatar": "",
"learned": ["一", "二", "三"],
"records": [{ "char": "一", "type": "write", "score": 85, "date": "2026-01-01T00:00:00.000Z" }],
"reviewStages": {},
"lastDailyReview": null,
"totalEXP": 1200,
"shopPoints": 150,
"badges": [],
"settings": { "dailyGoal": 10, "strokeHint": true, "autoAudio": true, "fontSize": "medium", "darkMode": false, "showFooterCredit": true },
"streak": 3,
"maxStreak": 5,
"lastStudyDate": "2026-01-03",
"pointLog": [],
"etymologyViewed": [],
"shopRewards": [],
"shopHistory": [],
"shopPassword": "",
"shopLockUntil": 0,
"shopAttempts": 0,
"planetUnlocks": ["nature_planet"]
}
}PUT /api/v1/users/me
json
{
"code": 0,
"msg": "ok",
"data": {
"userName": "汉字探索者",
"avatar": ""
}
}被哪个 Store 调用
- UserStore (
web/src/stores/user.ts)load()→GET /api/v1/users/mesave()→PUT /api/v1/users/me