积分模块
积分模块提供用户积分相关功能,包括积分排行榜等接口。
数据对象定义
Rank 对象
Rank 对象表示用户排名信息:
| 字段名 | 类型 | 说明 |
|---|---|---|
| rank | number | 排名(从1开始) |
| name | string | 用户昵称 |
| point | number | 用户积分 |
接口说明
获取积分排行榜
路径: /api/point/leaderboard
方法: GET
认证: 可选 JWT 认证
请求字段
| 字段名 | 必需 | 类型 | 说明 |
|---|---|---|---|
| type | 是 | string | 排行榜类型,可选值:all_time(全时段)、weekly(周榜) |
响应字段
| 字段名 | 必需 | 类型 | 说明 |
|---|---|---|---|
| type | 是 | string | 返回的排行榜类型 |
| leaderboard | 是 | Rank[] | 排行榜数据(最多100条) |
| current_user | 否 | Rank | 当前用户排名信息(仅在提供JWT时返回) |
| week_start | 否 | string | 本周开始时间(仅当type为weekly时返回,ISO 8601格式) |
| week_end | 否 | string | 本周结束时间(仅当type为weekly时返回,ISO 8601格式) |
使用说明
- 排行榜接口支持匿名访问,无需强制身份认证
- 如果请求时提供了有效的 JWT token,响应中会包含当前用户的排名信息
- 排行榜最多返回前100名用户数据,不支持分页
type=all_time:全时段排行榜,统计用户的总积分type=weekly:周榜,统计本周内用户获得的积分,每周重置- 周榜的统计周期从周一00:00开始到周日23:59结束
- 当请求周榜时,响应中会包含
week_start和week_end字段标明统计周期
示例请求
GET /api/point/leaderboard?type=all_time # 获取全时段排行榜
GET /api/point/leaderboard?type=weekly # 获取周榜