Files
2026-04-27 10:12:21 +08:00

4.7 KiB
Raw Permalink Blame History

API 管理 admin 接口

基本信息

  • 模块sys_api
  • 资源API 管理
  • admin
  • 鉴权:默认 PrivateGroup,需要 JWT + Casbin/api/freshCasbinPublicGroup
  • 审计:除 getAllApis/getApiList/getApiRoles/freshCasbin 外,其余接口启用 OperationRecord
  • 前缀:/api
  • 模型:system.SysApisystem.SysIgnoreApi;搜索:systemReq.SearchApiParams;角色绑定:systemReq.SetApiAuthorities
  • 返回:统一 response.Response

接口

动作 Method 路径 入参 返回重点
创建 API POST /api/createApi system.SysApi body 操作结果
删除 API POST /api/deleteApi system.SysApi body仅需 ID 操作结果
批量删除 API DELETE /api/deleteApisByIds request.IdsReq body 操作结果
更新 API POST /api/updateApi system.SysApi body 操作结果
API 详情 POST /api/getApiById request.GetById body api
API 分页列表 POST /api/getApiList systemReq.SearchApiParams body response.PageResult
全量 API 列表 POST /api/getAllApis apis
API 分组 GET /api/getApiGroups groups/apiGroupMap
预览同步差异 GET /api/syncApi newApis/deleteApis/ignoreApis
忽略/取消忽略 API POST /api/ignoreApi system.SysIgnoreApi body 操作结果
确认同步路由 POST /api/enterSyncApi 空 body 或 systemRes.SysSyncApis 操作结果
获取 API 关联角色 GET /api/getApiRoles path/method query uint[]
覆盖 API 关联角色 POST /api/setApiRoles systemReq.SetApiAuthorities body 操作结果
刷新 Casbin 缓存 GET /api/freshCasbin 操作结果

请求字段

SysApi Body

字段 类型 必填 说明
ID uint 更新/删除必填 API ID来自 global.GVA_MODEL 的 JSON 字段
path string 创建/更新必填 API 路径
description string 创建/更新必填 API 中文描述
apiGroup string 创建/更新必填 API 分组
method string 创建/更新必填 HTTP Method

SearchApiParams Body

字段 类型 必填 说明
page/pageSize int 页码/每页数量
path string API 路径筛选
description string API 描述筛选
apiGroup string API 分组筛选
method string HTTP Method 筛选
orderKey string 排序字段
desc bool 是否倒序

SysIgnoreApi Body

字段 类型 必填 说明
path string API 路径
method string HTTP Method
flag bool true 写入忽略;false 取消忽略

其他 Body/Query

场景 字段 类型 必填 说明
getApiById id int API ID此处使用 request.GetById,字段为小写 id
deleteApisByIds ids int[] API ID 数组
enterSyncApi newApis system.SysApi[] 兼容旧请求体;传入时按列表新增
enterSyncApi deleteApis system.SysApi[] 兼容旧请求体;传入时按列表删除
getApiRoles path string API 路径
getApiRoles method string HTTP Method
setApiRoles path string API 路径
setApiRoles method string HTTP Method
setApiRoles authorityIds uint[] 全量覆盖后的角色 ID 列表

响应字段

场景 字段 类型 说明
getApiById api object system.SysApi
getApiList list/total/page/pageSize mixed 分页结果
getAllApis apis array system.SysApi 列表
getApiGroups groups string[] API 分组列表
getApiGroups apiGroupMap object 路径首段到 API 分组映射
syncApi newApis/deleteApis/ignoreApis array 待新增、待删除、已忽略 API
getApiRoles data uint[] 角色 ID 列表

规则

  • path + method 唯一;创建重复 API 返回失败。
  • /api/syncApi 只预览差异,不写库。
  • /api/enterSyncApi 空 body 时以 global.GVA_ROUTERS 为事实来源同步 sys_apis
  • 同步时新路由按 path + method 新增;已有路由保留人工维护的 description/apiGroup
  • sys_ignore_apis 中的 path + method 不写入 sys_apis
  • 当前路由表不存在的旧 API 从 sys_apis 删除,并清理对应 Casbin 权限。
  • setApiRoles 为全量覆盖,成功后刷新 Casbin 缓存。
  • 默认管理员角色 888 必须具备 /api/getApiRoles/api/setApiRoles 权限。