超腾开源平台系统模块
系统模块提供用户、角色、菜单、权限、组织机构、应用、系统参数、业务字典、日志管理等系统核心功能。
目录
登录
用户登录获取访问令牌
带验证码的令牌登录,获取访问令牌。
接口地址: POST /api/system/login/access-token
需要认证: 否
请求体:
{
"username": "string",
"password": "string",
"captcha_key": "string",
"captcha_value": "string"
}
请求字段说明:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | 是 | 用户名 |
| password | string | 是 | 密码 |
| captcha_key | string | 是 | 验证码 key |
| captcha_value | string | 是 | 验证码值 |
响应示例:
{
"success": true,
"code": 200,
"msg": "登录成功",
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer"
}
}
使用 Token:
Authorization: Bearer {access_token}
刷新访问令牌
刷新访问令牌,需要携带有效的旧令牌。
接口地址: POST /api/system/login/refresh-token
需要认证: 是
响应示例:
{
"success": true,
"code": 200,
"msg": "刷新成功",
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer"
}
}
验证码
生成验证码
生成图形验证码。
接口地址: POST /api/system/captcha/generate
需要认证: 否
响应示例:
{
"success": true,
"code": 200,
"msg": "验证码生成成功",
"data": {
"id": "string",
"captcha_key": "string",
"captcha_value": "string",
"image_base64": "data:image/png;base64,..."
}
}
验证验证码
验证验证码是否正确。
接口地址: POST /api/system/captcha/verify
需要认证: 否
请求体:
{
"captcha_key": "string",
"captcha_value": "string"
}
响应示例:
{
"success": true,
"code": 200,
"msg": "验证成功",
"data": true
}
用户管理
获取当前用户信息
获取当前登录用户的详细信息。
接口地址: GET /api/system/users/me
需要认证: 是
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": {
"id": "1",
"username": "admin",
"nickname": "管理员",
"email": "admin@example.com",
"is_active": true,
"is_superuser": true,
"role_id": "1",
"role_name": "超级管理员"
}
}
获取用户列表
获取用户列表,支持多条件筛选。
接口地址: GET /api/system/users/list
需要认证: 是
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | 否 | 用户名 |
| nickname | string | 否 | 昵称 |
| sex | string | 否 | 性别 |
| string | 否 | 邮箱 | |
| phone | string | 否 | 手机号 |
| is_active | boolean | 否 | 是否激活 |
| role_id | int | 否 | 角色 ID |
| is_superuser | boolean | 否 | 是否超级用户 |
| order | string | 否 | 排序 |
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": [
{
"id": "1",
"username": "admin",
"nickname": "管理员",
"email": "admin@example.com"
}
]
}
获取用户分页
获取用户分页数据。
接口地址: GET /api/system/users/page
需要认证: 是
请求参数:
| 参数 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| page | int | 否 | 页码 | 1 |
| page_size | int | 否 | 每页条数 | 10 |
| username | string | 否 | 用户名 | - |
| nickname | string | 否 | 昵称 | - |
| … | … | … | 其他筛选参数同列表接口 | - |
| order | string | 否 | 排序 | - |
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": {
"total": 100,
"size": 10,
"pages": 10,
"current": 1,
"records": [
{
"id": "1",
"username": "admin",
"nickname": "管理员"
}
],
"orders": []
}
}
创建用户
创建新用户。
接口地址: POST /api/system/users/create
需要认证: 是
请求体:
{
"username": "newuser",
"nickname": "新用户",
"password": "password123",
"email": "newuser@example.com",
"phone": "13800138000",
"role_id": "2",
"is_active": true
}
响应示例:
{
"success": true,
"code": 200,
"msg": "创建成功",
"data": {
"id": "101",
"username": "newuser",
"nickname": "新用户"
}
}
更新用户
更新用户信息。
接口地址: POST /api/system/users/update
需要认证: 是
请求体: 同创建用户,需包含 id 字段。
响应示例:
{
"success": true,
"code": 200,
"msg": "更新成功",
"data": {
"id": "1",
"username": "admin",
"nickname": "管理员"
}
}
更新当前用户信息
更新当前登录用户的信息。
接口地址: POST /api/system/users/update_me
需要认证: 是
请求体: 仅可更新昵称、邮箱、手机号等基本信息。
修改密码
当前用户修改自己的密码。
接口地址: POST /api/system/users/change_password
需要认证: 是
请求体:
{
"old_password": "oldpass123",
"new_password": "newpass123",
"confirm_password": "newpass123",
"captcha_code": "1234",
"captcha_key": "key"
}
重置用户密码
管理员重置指定用户的密码。
接口地址: POST /api/system/users/reset_password
需要认证: 是(需要管理员权限)
请求体:
{
"user_id": "101",
"new_password": "newpass123"
}
删除用户
删除用户(逻辑删除)。
接口地址: POST /api/system/users/delete
需要认证: 是(需要管理员权限)
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | string | 是 | 用户 ID |
批量创建机器人用户
批量创建机器人用户,用于测试或数据填充。
接口地址: POST /api/system/users/create_bots
需要认证: 是(需要管理员权限)
请求体:
{
"count": 10
}
响应示例:
{
"success": true,
"code": 200,
"msg": "创建完成",
"data": {
"total": 10,
"success_count": 10,
"failed_count": 0,
"created_users": [...],
"errors": []
}
}
角色管理
获取角色列表
接口地址: GET /api/system/roles/list
需要认证: 是
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 角色名 |
| description | string | 否 | 描述 |
| is_active | boolean | 否 | 是否激活 |
| order | string | 否 | 排序 |
获取角色分页
接口地址: GET /api/system/roles/page
需要认证: 是
请求参数:
| 参数 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| page | int | 否 | 页码 | 1 |
| page_size | int | 否 | 每页条数 | 10 |
| … | … | … | 其他筛选参数同列表接口 | - |
创建角色
接口地址: POST /api/system/roles/create
需要认证: 是(需要超级管理员权限)
请求体:
{
"name": "编辑",
"description": "内容编辑角色",
"permissions": "blog:create,blog:update",
"is_active": true
}
更新角色
接口地址: POST /api/system/roles/update
需要认证: 是(需要超级管理员权限)
请求体: 同创建角色,需包含 id 字段。
删除角色
接口地址: POST /api/system/roles/delete
需要认证: 是(需要超级管理员权限)
菜单管理
获取菜单树
获取菜单的树形结构,用于前端渲染菜单。
接口地址: GET /api/system/menus/tree
需要认证: 是
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": [
{
"id": "1",
"name": "系统管理",
"path": "/system",
"type": "M",
"children": [
{
"id": "11",
"name": "用户管理",
"path": "/system/users",
"type": "C",
"children": []
}
]
}
]
}
获取用户菜单
获取当前用户有权限访问的菜单。
接口地址: GET /api/system/menus/user-menus
需要认证: 是
响应示例: 同菜单树结构。
获取菜单列表
接口地址: GET /api/system/menus/list
需要认证: 是
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 菜单名 |
| path | string | 否 | 路径 |
| type | string | 否 | 类型 |
| is_visible | boolean | 否 | 是否可见 |
| status | boolean | 否 | 状态 |
| order | string | 否 | 排序 |
获取菜单分页
接口地址: GET /api/system/menus/page
需要认证: 是
创建菜单
接口地址: POST /api/system/menus/create
需要认证: 是
请求体:
{
"name": "测试菜单",
"path": "/test",
"component": "test/index",
"type": "C",
"perms": "test:read",
"icon": "test",
"sort": 100,
"is_visible": true,
"status": true
}
更新菜单
接口地址: POST /api/system/menus/update
需要认证: 是
删除菜单
接口地址: POST /api/system/menus/delete
需要认证: 是
权限管理
分配角色菜单权限
为角色分配菜单权限。
接口地址: POST /api/system/permissions/role-menus
需要认证: 是(需要超级管理员权限)
请求体:
{
"role_id": "1",
"menu_ids": ["1", "11", "111"]
}
分配角色组织权限
为角色分配组织权限。
接口地址: POST /api/system/permissions/role-organizations
需要认证: 是(需要超级管理员权限)
分配用户角色
为用户分配角色。
接口地址: POST /api/system/permissions/user-roles
需要认证: 是(需要超级管理员权限)
分配用户组织
为用户分配组织。
接口地址: POST /api/system/permissions/user-organizations
需要认证: 是(需要超级管理员权限)
获取角色菜单权限
获取角色的菜单权限列表。
接口地址: GET /api/system/permissions/role-menus/{role_id}
需要认证: 是
获取用户权限
获取用户的所有权限(菜单、角色、组织)。
接口地址: GET /api/system/permissions/user-permissions/{user_id}
需要认证: 是
组织机构管理
获取组织树
获取组织机构的树形结构。
接口地址: GET /api/system/organizations/tree
需要认证: 是
获取组织列表
接口地址: GET /api/system/organizations/list
需要认证: 是
获取组织分页
接口地址: GET /api/system/organizations/page
需要认证: 是
创建组织
接口地址: POST /api/system/organizations/create
需要认证: 是
请求体:
{
"name": "技术部",
"parent_id": "1",
"code": "TECH",
"sort": 100,
"leader": "张三",
"phone": "13800138000",
"email": "tech@example.com",
"status": true,
"description": "技术研发部门"
}
更新组织
接口地址: POST /api/system/organizations/update
需要认证: 是
删除组织
接口地址: POST /api/system/organizations/delete
需要认证: 是
应用管理
获取应用列表
接口地址: GET /api/system/apps/list
需要认证: 是
获取应用分页
接口地址: GET /api/system/apps/page
需要认证: 是
创建应用
接口地址: POST /api/system/apps/create
需要认证: 是(需要超级管理员权限)
请求体:
{
"name": "超腾论文",
"app_id": "hylab-paper",
"app_secret": "secret123",
"description": "学术论文管理平台",
"version": "1.0.0",
"logo_url": "https://example.com/logo.png",
"status": "active"
}
响应示例:
{
"success": true,
"code": 200,
"msg": "创建成功",
"data": {
"id": "1",
"name": "超腾论文",
"app_id": "hylab-paper",
"app_secret": "****", // 敏感信息会被隐藏
"version": "1.0.0"
}
}
更新应用
接口地址: POST /api/system/apps/update
需要认证: 是(需要超级管理员权限)
删除应用
接口地址: POST /api/system/apps/delete
需要认证: 是(需要超级管理员权限)
系统参数管理
获取系统参数值
根据参数编码获取单个系统参数值。
接口地址: GET /api/system/sys-params/value
需要认证: 是
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | string | 是 | 参数编码 |
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": "value123"
}
批量获取系统参数值
批量获取多个系统参数的值。
接口地址: GET /api/system/sys-params/values
需要认证: 是
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| codes | string | 是 | 参数编码列表,逗号分隔 |
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": {
"site_title": "超腾开源平台",
"site_keywords": "开源,平台,开发",
"site_description": "一个完整的开源平台解决方案"
}
}
获取系统参数列表
接口地址: GET /api/system/sys-params/list
需要认证: 是
获取系统参数分页
接口地址: GET /api/system/sys-params/page
需要认证: 是
创建系统参数
接口地址: POST /api/system/sys-params/create
需要认证: 是(需要管理员权限)
请求体:
{
"code": "site.title",
"name": "网站标题",
"value": "超腾开源平台",
"description": "网站的标题",
"is_system": false,
"is_enabled": true
}
更新系统参数
接口地址: POST /api/system/sys-params/update
需要认证: 是(需要管理员权限)
删除系统参数
接口地址: POST /api/system/sys-params/delete
需要认证: 是(需要超级管理员权限)
业务字典管理
获取字典类型列表
接口地址: GET /api/system/dicts/types/list
需要认证: 是
获取字典类型及其字典项
获取字典类型及其下的所有字典项。
接口地址: GET /api/system/dicts/types/items
需要认证: 是
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type_code | string | 否 | 字典类型编码,不传则返回所有 |
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": [
{
"id": "1",
"code": "user_sex",
"name": "用户性别",
"items": [
{
"id": "11",
"code": "male",
"name": "男",
"value": "1"
},
{
"id": "12",
"code": "female",
"name": "女",
"value": "2"
}
]
}
]
}
创建字典类型
接口地址: POST /api/system/dicts/types/create
需要认证: 是(需要管理员权限)
请求体:
{
"code": "blog_status",
"name": "博客状态",
"description": "博客的状态类型",
"is_system": true,
"is_enabled": true
}
创建字典项
接口地址: POST /api/system/dicts/items/create
需要认证: 是(需要管理员权限)
请求体:
{
"type_id": "1",
"code": "draft",
"name": "草稿",
"value": "0",
"sort": 1,
"is_default": true,
"is_enabled": true
}
更新字典类型
接口地址: POST /api/system/dicts/types/update
需要认证: 是(需要管理员权限)
更新字典项
接口地址: POST /api/system/dicts/items/update
需要认证: 是(需要管理员权限)
删除字典类型
接口地址: POST /api/system/dicts/types/delete
需要认证: 是(需要超级管理员权限)
删除字典项
接口地址: POST /api/system/dicts/items/delete
需要认证: 是(需要管理员权限)
日志管理
获取系统日志列表
接口地址: GET /api/system/logs/system/list
需要认证: 是(需要管理员权限)
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| module | string | 否 | 模块 |
| operation_type | string | 否 | 操作类型 |
| level | string | 否 | 日志等级 |
| user_id | string | 否 | 用户 ID |
| start_time | string | 否 | 开始时间 |
| end_time | string | 否 | 结束时间 |
| order | string | 否 | 排序 |
获取系统日志分页
接口地址: GET /api/system/logs/system/page
需要认证: 是(需要管理员权限)
清空系统日志
接口地址: POST /api/system/logs/system/clear
需要认证: 是(需要超级管理员权限)
获取 API 日志列表
接口地址: GET /api/system/logs/api/list
需要认证: 是(需要管理员权限)
获取 API 日志分页
接口地址: GET /api/system/logs/api/page
需要认证: 是(需要管理员权限)
清空 API 日志
接口地址: POST /api/system/logs/api/clear
需要认证: 是(需要超级管理员权限)
获取错误日志列表
接口地址: GET /api/system/logs/error/list
需要认证: 是(需要管理员权限)
获取错误日志分页
接口地址: GET /api/system/logs/error/page
需要认证: 是(需要管理员权限)
创建错误日志
接口地址: POST /api/system/logs/error/create
需要认证: 是
请求体:
{
"module": "blog",
"request_method": "POST",
"request_path": "/api/content/blogs/create",
"error_type": "ValidationError",
"error_message": "Validation failed",
"stack_trace": "Traceback..."
}
更新错误日志
接口地址: POST /api/system/logs/error/update
需要认证: 是(需要管理员权限)
删除错误日志
接口地址: POST /api/system/logs/error/delete
需要认证: 是(需要管理员权限)
清空错误日志
接口地址: POST /api/system/logs/error/clear
需要认证: 是(需要超级管理员权限)
使用示例
Python 示例
import requests
# 登录获取 token
response = requests.post(
'http://localhost:8000/api/system/login/access-token',
json={
'username': 'admin',
'password': 'password',
'captcha_key': 'key',
'captcha_value': '1234'
}
)
if response.status_code == 200:
data = response.json()
if data['success']:
token = data['data']['access_token']
# 使用 token 访问用户列表
users_response = requests.get(
'http://localhost:8000/api/system/users/list',
headers={'Authorization': f'Bearer {token}'}
)
if users_response.status_code == 200:
users_data = users_response.json()
print(users_data)
JavaScript 示例
// 登录获取 token
async function login(username, password, captchaKey, captchaValue) {
const response = await fetch(
"http://localhost:8000/api/system/login/access-token",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
username,
password,
captcha_key: captchaKey,
captcha_value: captchaValue,
}),
}
);
const data = await response.json();
if (data.success) {
return data.data.access_token;
}
throw new Error(data.msg);
}
// 使用 token 访问 API
async function getUsers(token) {
const response = await fetch("http://localhost:8000/api/system/users/list", {
headers: { Authorization: `Bearer ${token}` },
});
const data = await response.json();
if (data.success) {
return data.data;
}
throw new Error(data.msg);
}
注意事项
- 密码安全: 所有密码字段都会被加密存储,不会在 API 响应中返回明文密码。
- 权限控制: 某些操作需要特定的权限或超级管理员权限才能执行。
- 分页查询: 大量数据建议使用分页查询,避免一次性返回过多数据。
- 排序: 支持多字段排序,格式为
字段_排序方式,如create_time_desc,name_asc。 - 日志记录: 所有重要操作都会记录在系统日志中,便于审计和追踪。
相关文档
推荐阅读
评论 (0)
发表评论
暂无评论,快来发表第一条评论吧!