Shop Rewards Mock API
源码:
web/src/mock/modules/shop/rewards.ts
接口列表
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/shop/rewards | 获取奖励列表 |
| POST | /api/v1/shop/rewards | 创建自定义奖励 |
| PUT | /api/v1/shop/rewards/:id | 更新奖励 |
| DELETE | /api/v1/shop/rewards/:id | 删除奖励 |
| PUT | /api/v1/shop/rewards/:id/toggle | 启用/禁用奖励 |
请求参数
GET /api/v1/shop/rewards
无请求参数。
POST /api/v1/shop/rewards
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 奖励名称 |
| cost | number | 是 | 所需积分(必须 > 0) |
| icon | string | 否 | 图标名称(默认 "star") |
PUT /api/v1/shop/rewards/:id
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| id | 路径 | string | 奖励ID |
| name | body | string | 新名称 |
| cost | body | number | 新积分值 |
| icon | body | string | 新图标 |
DELETE /api/v1/shop/rewards/:id
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| id | 路径 | string | 奖励ID |
PUT /api/v1/shop/rewards/:id/toggle
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| id | 路径 | string | 奖励ID |
响应格式
GET /api/v1/shop/rewards
json
{
"code": 0,
"msg": "ok",
"data": [
{ "id": "rw_001", "name": "看动画", "cost": 10, "icon": "star", "enabled": true, "createdAt": "2026-01-01T00:00:00.000Z" }
]
}POST /api/v1/shop/rewards
json
{
"code": 0,
"msg": "ok",
"data": { "id": "rw_002", "name": "玩游戏", "cost": 20, "icon": "game", "enabled": true, "createdAt": "2026-01-01T00:00:00.000Z" }
}错误响应:
- 名称为空:
{ "code": 400, "msg": "奖励名称不能为空", "data": null } - 积分 ≤ 0:
{ "code": 400, "msg": "积分消耗必须大于 0", "data": null }
PUT /api/v1/shop/rewards/:id
json
{ "code": 0, "msg": "ok", "data": { "id": "rw_001", "name": "新名字", "cost": 15, "icon": "star", "enabled": true } }错误:{ "code": 404, "msg": "奖励不存在", "data": null }
DELETE /api/v1/shop/rewards/:id
json
{ "code": 0, "msg": "ok", "data": null }PUT /api/v1/shop/rewards/:id/toggle
json
{ "code": 0, "msg": "ok", "data": { "id": "rw_001", "enabled": false } }被哪个 Store 调用
- ShopStore (
web/src/stores/shop.ts)load()→GET /api/v1/shop/rewardsaddReward(data)→POST /api/v1/shop/rewardsupdateReward(id, data)→PUT /api/v1/shop/rewards/:iddeleteReward(id)→DELETE /api/v1/shop/rewards/:idtoggleReward(id)→PUT /api/v1/shop/rewards/:id/toggle