API 文档
本文档提供了 www.wlot.top 网站的 API 接口说明,包括接口地址、参数、返回值等详细信息。
1. 用户登录接口
接口地址:
POST /Client/login
接口描述:
用户登录接口,根据 open_id 查询用户,不存在则自动创建新用户,存在则更新用户信息。
请求参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| nick_name | string | 否 | 用户昵称 |
| avatar | string | 否 | 用户头像URL |
| open_id | string | 是 | 用户唯一标识 |
返回参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| code | int | 状态码,200 表示成功,400 表示参数错误,500 表示服务器内部错误 |
| msg | string | 返回消息 |
| data | object | 用户信息对象 |
| data.id | int | 用户ID |
| data.nick_name | string | 用户昵称 |
| data.avatar | string | 用户头像URL |
| data.open_id | string | 用户唯一标识 |
| data.registration_date | string | 注册时间,格式:YYYY-MM-DD HH:MM:SS |
| data.last_login_time | string | 最后登录时间,格式:YYYY-MM-DD HH:MM:SS |
返回示例:
{
"code": 200,
"msg": "登录成功,新用户已创建",
"data": {
"id": 1,
"nick_name": "测试用户",
"avatar": "https://example.com/avatar.jpg",
"open_id": "o123456789",
"registration_date": "2026-03-12 12:00:00",
"last_login_time": "2026-03-12 12:00:00"
}
}
错误返回示例:
{
"code": 400,
"msg": "open_id不能为空"
}
2. 获取所有分类列表
接口地址:
POST /Client/getSkillGroups
接口描述:
获取所有分类列表,直接返回所有数据,不需要分页。
请求参数:
无
返回参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| code | int | 状态码,200 表示成功,500 表示服务器内部错误 |
| msg | string | 返回消息 |
| data | array | 分类列表数组 |
| data[].id | int | 分类ID |
| data[].name | string | 分类名称 |
返回示例:
{
"code": 200,
"msg": "获取分类列表成功",
"data": [
{
"id": 1,
"name": "分类1"
},
{
"id": 2,
"name": "分类2"
}
]
}
错误返回示例:
{
"code": 500,
"msg": "服务器内部错误: 数据库连接失败"
}
3. 获取指定分类的skill列表(分页)
接口地址:
POST /Client/getSkillsByGroup
接口描述:
根据分类ID获取该分类下的技能列表,不传递分类ID则返回所有技能,支持分页。
请求参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| group_id | int | 否 | 分类ID,不传递则返回所有技能 |
| page | int | 否 | 页码,默认1 |
| pageSize | int | 否 | 每页条数,默认10,最大100 |
返回参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| code | int | 状态码,200 表示成功,400 表示参数错误,500 表示服务器内部错误 |
| msg | string | 返回消息 |
| data | object | 返回数据对象 |
| data.list | array | 技能列表数组 |
| data.list[].id | int | 技能ID |
| data.list[].skill_name | string | 技能名称 |
| data.list[].skill_description | string | 技能描述 |
| data.list[].skill_icon | string | 技能图标URL |
| data.list[].skill_tag | string | 技能标签,多个标签用逗号隔开 |
| data.list[].skill_group | string | 技能所属分类ID,多个分类用逗号分隔 |
| data.list[].skill_version | string | 技能版本 |
| data.list[].skill_use | int | 技能使用次数 |
| data.list[].skill_money | float | 技能价格 |
| data.list[].skill_hot | int | 是否热门,1 表示热门,0 表示非热门 |
| data.list[].skill_recommendations | int | 是否推荐,1 表示推荐,0 表示非推荐 |
| data.pagination | object | 分页信息对象 |
| data.pagination.total | int | 总记录数 |
| data.pagination.page | int | 当前页码 |
| data.pagination.pageSize | int | 每页条数 |
| data.pagination.totalPages | int | 总页数 |
返回示例:
{
"code": 200,
"msg": "获取技能列表成功",
"data": {
"list": [
{
"id": 1,
"skill_name": "技能1",
"skill_description": "技能1描述",
"skill_icon": "https://example.com/icon1.png",
"skill_tag": "标签1",
"skill_group": "1",
"skill_version": "1.0.0",
"skill_use": 100,
"skill_money": 0,
"skill_hot": 1,
"skill_recommendations": 1
}
],
"pagination": {
"total": 1,
"page": 1,
"pageSize": 10,
"totalPages": 1
}
}
}
错误返回示例:
{
"code": 400,
"msg": "分类ID不能为空"
}
4. 获取指定skill的详细内容
接口地址:
POST /Client/getSkillDetail
接口描述:
根据技能ID获取技能的详细完整内容。
请求参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 技能ID |
返回参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| code | int | 状态码,200 表示成功,400 表示参数错误,404 表示技能不存在,500 表示服务器内部错误 |
| msg | string | 返回消息 |
| data | object | 技能详细内容对象 |
| data.id | int | 技能ID |
| data.skill_name | string | 技能名称 |
| data.skill_description | string | 技能描述 |
| data.skill_icon | string | 技能图标URL |
| data.skill_tag | string | 技能标签,多个标签用逗号隔开 |
| data.skill_group | string | 技能所属分类ID,多个分类用逗号分隔 |
| data.skill_version | string | 技能版本 |
| data.skill_use | int | 技能使用次数 |
| data.skill_money | float | 技能价格 |
| data.skill_create_time | string | 技能创建时间 |
| data.skill_update_time | string | 技能更新时间 |
| data.skill_hot | int | 是否热门,1 表示热门,0 表示非热门 |
| data.skill_recommendations | int | 是否推荐,1 表示推荐,0 表示非推荐 |
| data.skill_user | int | 技能创建用户ID |
| data.skill_content | string | 技能详细内容 |
返回示例:
{
"code": 200,
"msg": "获取技能详情成功",
"data": {
"id": 1,
"skill_name": "技能1",
"skill_description": "技能1描述",
"skill_icon": "https://example.com/icon1.png",
"skill_tag": "标签1",
"skill_group": "1",
"skill_version": "1.0.0",
"skill_use": 100,
"skill_money": 0,
"skill_create_time": "2026-03-12 12:00:00",
"skill_update_time": "2026-03-12 12:00:00",
"skill_hot": 1,
"skill_recommendations": 1,
"skill_user": 1,
"skill_content": "技能详细内容..."
}
}
错误返回示例:
{
"code": 400,
"msg": "技能ID不能为空"
}
{
"code": 404,
"msg": "技能不存在"
}
5. 获取热门skill技能列表
接口地址:
POST /Client/getHotSkills
接口描述:
获取热门skill技能列表,只返回4条数据,按使用次数降序排列。
请求参数:
无
返回参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| code | int | 状态码,200 表示成功,500 表示服务器内部错误 |
| msg | string | 返回消息 |
| data | array | 热门技能列表数组 |
| data[].id | int | 技能ID |
| data[].skill_name | string | 技能名称 |
| data[].skill_description | string | 技能描述 |
| data[].skill_icon | string | 技能图标URL |
| data[].skill_tag | string | 技能标签,多个标签用逗号隔开 |
| data[].skill_group | string | 技能所属分类ID,多个分类用逗号分隔 |
| data[].skill_version | string | 技能版本 |
| data[].skill_use | int | 技能使用次数 |
| data[].skill_money | float | 技能价格 |
| data[].skill_hot | int | 是否热门,1 表示热门,0 表示非热门 |
| data[].skill_recommendations | int | 是否推荐,1 表示推荐,0 表示非推荐 |
返回示例:
{
"code": 200,
"msg": "获取热门技能列表成功",
"data": [
{
"id": 1,
"skill_name": "技能1",
"skill_description": "技能1描述",
"skill_icon": "https://example.com/icon1.png",
"skill_tag": "标签1",
"skill_group": "1",
"skill_version": "1.0.0",
"skill_use": 100,
"skill_money": 0,
"skill_hot": 1,
"skill_recommendations": 1
},
{
"id": 2,
"skill_name": "技能2",
"skill_description": "技能2描述",
"skill_icon": "https://example.com/icon2.png",
"skill_tag": "标签2",
"skill_group": "1",
"skill_version": "1.0.0",
"skill_use": 90,
"skill_money": 0,
"skill_hot": 1,
"skill_recommendations": 1
}
]
}
错误返回示例:
{
"code": 500,
"msg": "服务器内部错误: 数据库连接失败"
}