安装、重装、卸载、启停和菜单开关(addon.manage)
/api/v1/addons/{key}/actions/{action}
POST
/api/v1/addons/{key}/actions/{action}调用说明
需要 addon.manage。action 只允许 install、reinstall、uninstall、enable、disable、menu。示例演示安装,角色 ID 应先从角色组接口获取。
安装必须传 page_roles;重装可省略以保留原授权;其他动作不能携带页面配置。show_menu 必须为 JSON 布尔值。卸载保留业务数据并清除平台授权。
路径与请求头参数
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| key | path | string | 是 | ^[a-z][a-z0-9_]{1,79}$ |
| action | path | string | 是 | install / reinstall / uninstall / enable / disable / menu |
| X-CSRF-Token | header | string | 是 | 后台页面 meta[name="csrf-token"] 的当前会话令牌 |
JSON 请求体
install 必须传 page_roles;reinstall 不传时保留原授权;其他操作不能传 page_roles。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| show_menu | boolean | 按操作要求 | 参见调用说明 |
| page_roles | object | 按操作要求 | 须包含全部页面。每页 view 为可查看角色,manage 为可操作角色且必须是 view 的子集;两者为空时仅管理员。 |
Axios 请求示例
在已登录后台页面中调用;示例角色 ID 仅用于说明,请替换为当前系统中的实际角色。
javascript
axios.post('/api/v1/addons/ledger_management/actions/install', {
"show_menu": true,
"page_roles": {
"tasks": {
"view": [
3
],
"manage": [
3
]
},
"categories": {
"view": [],
"manage": []
},
"fields": {
"view": [],
"manage": []
},
"templates": {
"view": [],
"manage": []
},
"domains": {
"view": [],
"manage": []
}
}
});响应结构示例
以下为结构示例,不是实时接口结果;列表和文档对象可能省略部分项目。
json
{
"code": 0,
"message": "操作成功",
"data": {
"menus": []
}
}响应状态
| HTTP 状态 | 含义 |
|---|---|
| 200 | 成功 |
| 401 | 未登录或会话失效 |
| 403 | 没有权限 |
| 419 | CSRF 令牌无效 |
| 422 | 参数错误 |
| 503 | 数据库结构需要升级 |