Character List Mock API
源码:
web/src/mock/modules/character/list.ts
接口列表
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/characters | 获取汉字列表(支持分页和筛选) |
| GET | /api/v1/characters/:char | 获取单个汉字详情 |
| GET | /api/v1/characters/categories | 获取分类列表 |
| GET | /api/v1/characters/categories/:id/chars | 获取分类下的汉字列表 |
注意: 路由注册顺序重要 —
/categories必须在/:char之前,否则 "categories" 会被匹配为单字名称。
请求参数
GET /api/v1/characters
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | number | 否 | 页码(默认 1) |
| pageSize | number | 否 | 每页条数(默认 10,上限 1000) |
| category | string | 否 | 按分类ID筛选 |
| subCategory | string | 否 | 按子分类筛选 |
| keyword | string | 否 | 搜索关键词(汉字、拼音、释义) |
| difficulty | number | 否 | 按难度筛选 |
GET /api/v1/characters/:char
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| char | 路径 | string | 汉字字符(URL 编码) |
GET /api/v1/characters/categories
无请求参数。
GET /api/v1/characters/categories/:id/chars
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| id | 路径 | string | 分类ID |
| page | 查询 | number | 页码 |
| pageSize | 查询 | number | 每页条数 |
| subCategory | 查询 | string | 子分类筛选 |
响应格式
GET /api/v1/characters
json
{
"code": 0,
"msg": "ok",
"data": {
"list": [
{ "char": "一", "category_id": "number", "pinyin": "yī", "meaning": "数字1", "difficulty": 1, "words": ["一个", "第一"] }
],
"total": 500,
"page": 1,
"pageSize": 20
}
}GET /api/v1/characters/:char
json
{
"code": 0,
"msg": "ok",
"data": { "char": "一", "category_id": "number", "pinyin": "yī", "meaning": "数字1", "difficulty": 1 }
}错误响应:
- 汉字不存在:
{ "code": 404, "msg": "汉字不存在", "data": null }
GET /api/v1/characters/categories
json
{
"code": 0,
"msg": "ok",
"data": [
{ "id": "nature", "name": "自然", "icon": "nature", "sub_categories": [{ "id": "weather", "name": "天气" }] }
]
}GET /api/v1/characters/categories/:id/chars
json
{
"code": 0,
"msg": "ok",
"data": {
"list": [{ "char": "山", "category_id": "nature", "pinyin": "shān" }],
"total": 50,
"page": 1,
"pageSize": 20
}
}被哪个 Store 调用
- CharacterStore (
web/src/stores/character.ts)load()→GET /api/v1/characters+GET /api/v1/characters/categories