Some checks failed
CI / init (pull_request) Has been cancelled
CI / Frontend node 18.16.0 (pull_request) Has been cancelled
CI / Backend go (1.22) (pull_request) Has been cancelled
CI / release-pr (pull_request) Has been cancelled
CI / devops-test (1.22, 18.16.0) (pull_request) Has been cancelled
CI / release-please (pull_request) Has been cancelled
CI / devops-prod (1.22, 18.x) (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
2.2 KiB
2.2 KiB
API 管理 admin 接口
基本信息
- 模块:sys_api
- 资源:API 管理
- 端:admin
- 鉴权:挂载
PrivateGroup,需要JWT + Casbin - 操作审计:
/api/enterSyncApi启用OperationRecord - 路由前缀:
/api
同步接口
| 动作 | Method | 路径 | API 方法 | Service 方法 |
|---|---|---|---|---|
| 预览同步差异 | GET |
/api/syncApi |
SyncApi |
SyncApi |
| 确认同步路由 | POST |
/api/enterSyncApi |
EnterSyncApi |
EnterSyncApi / SyncApiToDB |
| 获取 API 关联角色 | GET |
/api/getApiRoles |
GetApiRoles |
GetAuthoritiesByApi |
| 覆盖 API 关联角色 | POST |
/api/setApiRoles |
SetApiRoles |
SetApiAuthorities |
| 刷新 Casbin 缓存 | GET |
/api/freshCasbin |
FreshCasbin |
FreshCasbin |
参数与返回
/api/syncApi:无入参,返回newApis、deleteApis、ignoreApis,只预览差异,不写库。/api/enterSyncApi:允许空 body 或{},默认以当前 Gin 路由表global.GVA_ROUTERS为事实来源同步sys_apis。/api/enterSyncApi:兼容旧请求体systemRes.SysSyncApis,传入newApis/deleteApis时按传入列表写入或删除。/api/getApiRoles:query 传入path、method,返回该 API 已关联的角色 ID 列表。/api/setApiRoles:body 传入path、method、authorityIds,全量覆盖该 API 的角色权限。/api/freshCasbin:无入参,刷新 Casbin 缓存;该接口走公开路由但写入sys_ignore_apis,不作为角色权限点维护。- 返回:统一使用
response.Response。
同步规则
- 新路由:
sys_apis中不存在同一path + method时自动新增。 - 已有路由:保留原
description、apiGroup等人工维护字段,不自动覆盖。 - 忽略路由:存在于
sys_ignore_apis的path + method不写入sys_apis。 - 失效路由:数据库中存在但当前 Gin 路由表不存在时,从
sys_apis删除,并清理对应 Casbin 权限。 - 默认管理员角色
888必须具备/api/getApiRoles与/api/setApiRoles权限,避免出现“无权分配权限”的系统初始化死锁。 - 公开接口、仅登录接口不应长期作为角色权限点维护;需要通过
sys_ignore_apis排除。